virtualx-engine/scene/3d
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
..
area_3d.cpp Fix editor suffixes and degrees conversion 2021-06-30 12:38:25 -03:00
area_3d.h Merge pull request #42742 from madmiraal/fix-12215 2021-05-18 20:00:48 +02:00
audio_stream_player_3d.cpp Fix editor suffixes and degrees conversion 2021-06-30 12:38:25 -03:00
audio_stream_player_3d.h Increase the default AudioStreamPlayer3D unit size to 10 2021-05-06 02:45:46 +02:00
bone_attachment_3d.cpp Initialize class variables with default values in scene/ [1/2] 2021-02-07 22:29:31 +01:00
bone_attachment_3d.h Initialize class variables with default values in scene/ [1/2] 2021-02-07 22:29:31 +01:00
camera_3d.cpp Fix editor suffixes and degrees conversion 2021-06-30 12:38:25 -03:00
camera_3d.h Add is_position_in_frustum to Camera3D 2021-06-14 12:03:18 -04:00
collision_object_3d.cpp Add support for controlling physics nodes' behavior when disabled 2021-06-30 09:20:44 -07:00
collision_object_3d.h Add support for controlling physics nodes' behavior when disabled 2021-06-30 09:20:44 -07:00
collision_polygon_3d.cpp KinematicBody split between new CharacterBody and PhysicsBody 2021-06-04 11:40:36 -07:00
collision_polygon_3d.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
collision_shape_3d.cpp KinematicBody split between new CharacterBody and PhysicsBody 2021-06-04 11:40:36 -07:00
collision_shape_3d.h Create CollisionObject3D debug shapes using RS 2021-05-05 09:12:50 +02:00
cpu_particles_3d.cpp Use PROPERTY_USAGE_NONE instead of 0 for no property usage 2021-07-01 14:13:27 -04:00
cpu_particles_3d.h Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
decal.cpp Hide more options of disabled properties 2021-03-03 20:51:35 -03:00
decal.h Hide more options of disabled properties 2021-03-03 20:51:35 -03:00
gpu_particles_3d.cpp Use PROPERTY_USAGE_NONE instead of 0 for no property usage 2021-07-01 14:13:27 -04:00
gpu_particles_3d.h Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
gpu_particles_collision_3d.cpp Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
gpu_particles_collision_3d.h Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
light_3d.cpp Use PROPERTY_USAGE_NONE instead of 0 for no property usage 2021-07-01 14:13:27 -04:00
light_3d.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
lightmap_gi.cpp Use PROPERTY_USAGE_NONE instead of 0 for no property usage 2021-07-01 14:13:27 -04:00
lightmap_gi.h Rename GI Classes 2021-06-05 09:28:56 -03:00
lightmap_probe.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
lightmap_probe.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
lightmapper.cpp Implement occlusion culling 2021-04-23 21:45:23 +02:00
lightmapper.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
listener_3d.cpp Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
listener_3d.h Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
mesh_instance_3d.cpp Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
mesh_instance_3d.h Expose creating multiple-convex-collision static bodies to GDScript 2021-04-27 06:56:04 +03:00
multimesh_instance_3d.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
multimesh_instance_3d.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
navigation_agent_3d.cpp Fix NavigationAgent3D not emitting "target_reached" Signal 2021-04-27 12:31:50 +02:00
navigation_agent_3d.h Fix NavigationAgent3D not emitting "target_reached" Signal 2021-04-27 12:31:50 +02:00
navigation_obstacle_3d.cpp Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
navigation_obstacle_3d.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
navigation_region_3d.cpp Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
navigation_region_3d.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
node_3d.cpp Fix editor suffixes and degrees conversion 2021-06-30 12:38:25 -03:00
node_3d.h Fix editor suffixes and degrees conversion 2021-06-30 12:38:25 -03:00
occluder_instance_3d.cpp Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
occluder_instance_3d.h Implement occlusion culling 2021-04-23 21:45:23 +02:00
path_3d.cpp Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
path_3d.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
physics_body_3d.cpp Make move_and_slide collision detection more accurate 2021-07-01 15:15:42 -07:00
physics_body_3d.h Merge pull request #50009 from reduz/fix-suffixes-and-degrees 2021-06-30 18:47:40 +02:00
physics_joint_3d.cpp Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
physics_joint_3d.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
position_3d.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
position_3d.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
proximity_group_3d.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
proximity_group_3d.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
ray_cast_3d.cpp Use double-sided material for RayCast3D 2021-06-19 05:05:58 +02:00
ray_cast_3d.h Adding Raycast3D custom debug shape thickness and color 2021-03-04 11:17:26 +01:00
reflection_probe.cpp Fix editor suffixes and degrees conversion 2021-06-30 12:38:25 -03:00
reflection_probe.h Increase the default ReflectionProbe extents to Vector3(10, 10, 10) 2021-06-27 16:46:03 +02:00
remote_transform_3d.cpp Rename is_a_parent_of() to is_ancestor_of() 2021-06-21 08:39:28 -06:00
remote_transform_3d.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
SCsub Disable Skeleton3D when compiling without 3D 2021-06-04 08:33:50 -04:00
skeleton_3d.cpp Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
skeleton_3d.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
skeleton_ik_3d.cpp Rename Variant TRANSFORM to TRANSFORM3D 2021-06-03 07:30:01 -04:00
skeleton_ik_3d.h Rename files and the exposed name for Transform3D 2021-06-03 07:30:01 -04:00
soft_body_3d.cpp Merge pull request #49834 from nekomatata/physics-disable-modes 2021-06-30 20:36:36 +02:00
soft_body_3d.h Add support for controlling physics nodes' behavior when disabled 2021-06-30 09:20:44 -07:00
spring_arm_3d.cpp Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
spring_arm_3d.h Initialize class variables with default values in scene/ [1/2] 2021-02-07 22:29:31 +01:00
sprite_3d.cpp Import mesh colors in 8BPP. 2021-06-30 23:33:25 -03:00
sprite_3d.h Deprecate ImmediateGeometry 2021-06-30 14:14:41 -03:00
vehicle_body_3d.cpp Add support for controlling physics nodes' behavior when disabled 2021-06-30 09:20:44 -07:00
vehicle_body_3d.h Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
velocity_tracker_3d.cpp Initialize class variables with default values in scene/ [1/2] 2021-02-07 22:29:31 +01:00
velocity_tracker_3d.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
visible_on_screen_notifier_3d.cpp Rename VisibilityNotifierXD to VisibleOnScreenNotifierXD 2021-06-16 22:01:39 -03:00
visible_on_screen_notifier_3d.h Rename VisibilityNotifierXD to VisibleOnScreenNotifierXD 2021-06-16 22:01:39 -03:00
visual_instance_3d.cpp Use PROPERTY_USAGE_NONE instead of 0 for no property usage 2021-07-01 14:13:27 -04:00
visual_instance_3d.h Implement visibility range and dependencies. 2021-06-14 12:17:11 +02:00
voxel_gi.cpp Clean up RenderingServer and its bindings 2021-07-01 09:07:36 -03:00
voxel_gi.h Clean up RenderingServer and its bindings 2021-07-01 09:07:36 -03:00
voxelizer.cpp Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
voxelizer.h Rename GI Classes 2021-06-05 09:28:56 -03:00
world_environment.cpp Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
world_environment.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00
xr_nodes.cpp Use mouse and joypad enums instead of plain integers 2021-06-20 11:54:24 -04:00
xr_nodes.h Use Array for node configuration warnings 2021-04-11 23:25:38 -05:00