mirror of
https://github.com/godotengine/godot.git
synced 2024-12-09 10:09:20 +08:00
448c41a3e4
Use ThreadWorkPool to process physics step tasks in multiple threads. Collisions are all processed in parallel and solving impulses is processed in parallel for rigid body islands. Additional changes: - Proper islands for soft bodies linked to active bodies - All moving areas are on separate islands (can be parallelized) - Fix inconsistencies with body islands (Kinematic bodies could link bodies together or not depending on the processing order) - Completely prevent static bodies to be active (it could cause islands to be wrongly created and cause dangerous multi-threading operations as well as inconsistencies in created islands) - Apply impulses only on dynamic bodies to avoid unsafe multi-threaded operations (static bodies can be on multiple islands) - Removed inverted iterations when populating body islands, it's now faster in regular order (maybe after fixing inconsistencies) |
||
---|---|---|
.. | ||
joints | ||
area_3d_sw.cpp | ||
area_3d_sw.h | ||
area_pair_3d_sw.cpp | ||
area_pair_3d_sw.h | ||
body_3d_sw.cpp | ||
body_3d_sw.h | ||
body_pair_3d_sw.cpp | ||
body_pair_3d_sw.h | ||
broad_phase_3d_basic.cpp | ||
broad_phase_3d_basic.h | ||
broad_phase_3d_sw.cpp | ||
broad_phase_3d_sw.h | ||
broad_phase_octree.cpp | ||
broad_phase_octree.h | ||
collision_object_3d_sw.cpp | ||
collision_object_3d_sw.h | ||
collision_solver_3d_sat.cpp | ||
collision_solver_3d_sat.h | ||
collision_solver_3d_sw.cpp | ||
collision_solver_3d_sw.h | ||
constraint_3d_sw.h | ||
gjk_epa.cpp | ||
gjk_epa.h | ||
joints_3d_sw.h | ||
physics_server_3d_sw.cpp | ||
physics_server_3d_sw.h | ||
physics_server_3d_wrap_mt.cpp | ||
physics_server_3d_wrap_mt.h | ||
SCsub | ||
shape_3d_sw.cpp | ||
shape_3d_sw.h | ||
soft_body_3d_sw.cpp | ||
soft_body_3d_sw.h | ||
space_3d_sw.cpp | ||
space_3d_sw.h | ||
step_3d_sw.cpp | ||
step_3d_sw.h |