summaryrefslogtreecommitdiff
path: root/servers/physics_3d/godot_space_3d.cpp
diff options
context:
space:
mode:
authorPouleyKetchoupp <pouleyketchoup@gmail.com>2021-12-03 10:38:40 -0700
committerPouleyKetchoupp <pouleyketchoup@gmail.com>2021-12-03 10:40:15 -0700
commit5cbc7149a1cd9a55ffccf8ca96e48b872417ce89 (patch)
tree9de8fbff38701bf81ded98d8bbf7f3d877df308b /servers/physics_3d/godot_space_3d.cpp
parent80e292b3e019d4084b09431572bba12f87e81023 (diff)
Improve RigidDynamicBody contacts in 2D and 3D
Changed the algorithm for solving contacts to keep previous contacts as long as they are under the max separation threshold to keep contact impulses more consistent and contacts more stable. Also made 2D consistent with 3D and changed some default parameters: -Contact bias is now 0.8 instead of 0.3 to avoid springy contacts -Solver iterations are 16 instead of 8 by default for better stability Performance considerations: Tested with stress tests that include lots of contacts from overlapping bodies. 3D: There's no measurable difference in performance. 2D: Performance is a bit lower (close to 10% slower in extreme cases) The benefit for 2D physics to be much more stable outweighs the slight decrease in performance, and this could be alleviated by changing the algorithm to use jacobians for contact solving to help with cache efficiency and memory allocations.
Diffstat (limited to 'servers/physics_3d/godot_space_3d.cpp')
0 files changed, 0 insertions, 0 deletions