virtualx-engine/servers
PouleyKetchoupp cf1ddfdb90 Make move_and_slide collision detection more accurate
More accurate unsafe motion calculation
* Safe and unsafe motion are calculated by dichotomy with a limited
number of steps. It's good for performance, but on long motions that
either collide near the beginning or near the end, the result can be
very imprecise.
* Now a factor 0.25 or 0.75 is used to converge faster when this case
happens, which allows longer motions to get more accurate collision
detection.
* Makes snap collision more precise, and helps with cases where diagonal collision on the border of a platform can lead to the character being stuck.

Additional improvements to move_and_slide:
* Handle slide canceling in move_and_collide with 0 velocity instead of
not applying it.
* Better handling of snap with custom logic to cancel sliding.
* Remove small jittering when using stop on slope, by canceling the
motion completely when the resulting motion is less than margin instead
of always projecting to the up direction (in both body motion and snap).

Co-authored-by: fabriceci <fabricecipolla@gmail.com>
2021-07-01 15:15:42 -07:00
..
audio Use PROPERTY_USAGE_NONE instead of 0 for no property usage 2021-07-01 14:13:27 -04:00
camera Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
physics_2d Make move_and_slide collision detection more accurate 2021-07-01 15:15:42 -07:00
physics_3d Make move_and_slide collision detection more accurate 2021-07-01 15:15:42 -07:00
rendering Fix surface from array creation 2021-07-01 16:51:55 -03:00
xr Add stereoscopic rendering through multiview 2021-06-13 22:52:20 +10:00
audio_server.cpp Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
audio_server.h Make audio bus channels' peak volume consistent 2021-02-02 11:30:32 +01:00
camera_server.cpp Fix crash caused by null parameter passed to CameraServer.add_feed() 2021-04-02 17:11:30 +03:00
camera_server.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
display_server.cpp Use mouse and joypad enums instead of plain integers 2021-06-20 11:54:24 -04:00
display_server.h Use mouse and joypad enums instead of plain integers 2021-06-20 11:54:24 -04:00
display_server_headless.h Move remaining dummy drivers to servers. 2021-06-01 16:50:32 +02:00
navigation_server_2d.cpp Rename files and the exposed name for Transform3D 2021-06-03 07:30:01 -04:00
navigation_server_2d.h Allow Navigation to be more flexible 2021-03-15 15:58:59 +01:00
navigation_server_3d.cpp Allow Navigation to be more flexible 2021-03-15 15:58:59 +01:00
navigation_server_3d.h Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
physics_server_2d.cpp Fix move_and_collide causing sliding on slopes 2021-06-28 17:17:52 -07:00
physics_server_2d.h Fix move_and_collide causing sliding on slopes 2021-06-28 17:17:52 -07:00
physics_server_3d.cpp Safe margin cleanup 2021-06-04 11:40:36 -07:00
physics_server_3d.h Fix move_and_collide causing sliding on slopes 2021-06-28 17:17:52 -07:00
register_server_types.cpp Implement native extension system 2021-06-25 17:32:45 -03:00
register_server_types.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
rendering_server.cpp Merge pull request #50040 from reduz/fix-renderingserver-bindings 2021-07-01 15:17:33 +02:00
rendering_server.h Clean up RenderingServer and its bindings 2021-07-01 09:07:36 -03:00
SCsub Renaming all ARVR nodes to XR 2020-04-09 15:33:01 +10:00
server_wrap_mt_common.h Make Servers truly Thread Safe 2021-02-10 13:21:46 -03:00
text_server.cpp Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
text_server.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
xr_server.cpp Add stereoscopic rendering through multiview 2021-06-13 22:52:20 +10:00
xr_server.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00