Age | Commit message (Collapse) | Author |
|
Clean up logic in _check_motion
Closes 45824
|
|
Rename get_surface_material to get_surface_override_material
|
|
|
|
Godot Physics solver optimization
|
|
-Used a more consistent set of keywords for the shader
-Remove all harcoded entry points
-Re-wrote the GLSL shader parser, new system is more flexible. Allows any entry point organization.
-Entry point for sky shaders is now sky().
-Entry point for particle shaders is now process().
|
|
Several optimizations in the way solver islands are processed in both
2D and 3D physics:
- Use LocalVector instead of linked list to avoid cache misses (with
persistent storage based on worst case scenario)
- Remove pairs when setup fails (no valid contact) to avoid unnecessary
solving of non-colliding rigid bodies just to return immediately
|
|
Parameters were inverted in `apply_impulse` and `apply_bias_impulse` due
to a modification on master.
|
|
|
|
Check for empty ConcavePolygonShape2D before checking for intersection
|
|
Check ConvexPolygonShape2D point count before calcuating moment of inertia
|
|
Ensure ConvexPolygonShape3D support count variable is initialised
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Change XRPositionalTracker to a reference (master)
|
|
Fixes #46181
CameraServer.add_feed() takes a CameraFeed object type as parameter.
Passing in another type of data while binding the method it will make
tha parameter null.
Added a check for null which returns from function and does not make the
engine crash anymore.
|
|
Obtain supported Vulkan API
|
|
|
|
|
|
|
|
Remove all elements from monitored_bodies and monitored_areas when processed
|
|
|
|
The program would fail if the parameter is passed as null in set_primary_interface because
in the print_verbose, the get_namea) method is called on the parameter and this causes a
failure if the parameter that was passed is null.
Same fix was done in 3.x also and it seems to be present in master too.
|
|
The moment of inertia calculation for BoxShape is:
```
Vector3(
(p_mass / 3.0) * (ly * ly + lz * lz),
(p_mass / 3.0) * (lx * lx + lz * lz),
(p_mass / 3.0) * (lx * lx + ly * ly));
```
where the final line includes both the x and y extents.
However, for CapsuleShape3D, CylinderShape3D, ConvexPolygonShape3D, ConcavePolygonShape3D, and HeightMapShape3D, the final line read `(p_mass / 3.0) * (extents.y * extents.y + extents.y * extents.y)`. I believe this is a mistake, considering the comment in each case mentions using an AABB approximation, which should follow the same approach as BoxShape.
This change corrects the final line to include both the x and y components of the shape's extent.
|
|
Fix GodotPhysics solver with kinematic body set to report contacts
|
|
Fix kinematic angular velocity calculations
|
|
SoftBody support in GodotPhysics 3D
|
|
Disable backface collision with ConcavePolygonShape by default
|
|
The angular velocity estimate for kinematic bodies was calculated
incorrectly. Also, fixes its use in some kinematic/rigid collision
calculations.
This fixes #47029.
|
|
Helps a lot with soft bodies and generally useful to avoid shapes to go
through the ground in certain cases.
Added an option in ConcavePolygonShape to re-enable backface collision
on specific bodies if needed.
|
|
- Fixed SoftBody surface update with new rendering system
- Added GodotPhysics implementation for SoftBody
- Added support to get SoftBody rid to interact with the physics server
- Added support to get SoftBody bounds from the physics server
- Removed support for unused get_vertex_position and get_point_offset
from the physics server
- Removed SoftBody properties that are unused in both Bullet and
GodotPhysics (angular and volume stiffness, pose matching)
- Added RenderingServerHandler interface to PhysicsServer3D so the physics servers don't need to reference the class from SoftBody node directly
|
|
Make 2D navigation consider scale
|
|
|
|
Changed SCsub for shaders to find shaders automatically
|
|
dependencies with include files
|
|
|
|
|
|
Fix Cylinder shape collision with margins when using GJK-EPA
|
|
Fix capsule-cylinder collision in godot physics
|
|
Allow Navigation to be more flexible
|
|
Test specific axes before falling back to GJK-EPA algorithm to get more
accurate separation axes for common cases, the same way it's done for
cylinder-cylinder collision.
|
|
Vulkan: Fix crash when opening a ShaderMaterial with code saved as an external .shader file
|
|
In the case of falling back to GJK-EPA algorithm to generate cylinder
contact points, margins were never taken into account.
This fixes the depenetration phase for kinematic bodies and allows
consistent floor detection for cylinder shapes.
|
|
|
|
|