Age | Commit message (Collapse) | Author |
|
-Enable the trails and set the length in seconds
-Provide a mesh with a skeleton and a skin
-Or, alternatively use one of the built-in TubeTrailMesh/RibbonTrailMesh
-Works deterministically
-Fixed particle collisions (were broken)
-Not working in 2D yet (that will happen next)
|
|
|
|
Core: Drop custom `copymem`/`zeromem` defines
|
|
|
|
We've been using standard C library functions `memcpy`/`memset` for these since
2016 with 67f65f66391327b2967a20a89c3627e1dd6e84eb.
There was still the possibility for third-party platform ports to override the
definitions with a custom header, but this doesn't seem useful anymore.
|
|
|
|
Remove duplicate comments
|
|
A few single line comments were duplicated, probably due to bad merges.
This commit removes the obviously duplicate ones.
|
|
|
|
Added an occlusion culling system with support for static occluder meshes.
It can be enabled via `Project Settings > Rendering > Occlusion Culling > Use Occlusion Culling`.
Occluders are defined via the new `Occluder3D` resource and instanced using the new
`OccluderInstance3D` node. The occluders can also be automatically baked from a
scene using the built-in editor plugin.
|
|
Removed _direct_state_changed bindings
Affects 2D and 3D nodes
Callbacks now use Callable
Tests were changed accordingly
|
|
Fix reflection probe
|
|
|
|
Heightmap collision shape support in Godot Physics
|
|
* Particle shaders now have start() and process()
* Particle collision happens between them.
* The RESTART property is kept, so porting an old shader is still possible.
This fixes the problem of particle collisions not functioning on the first particle frame.
|
|
Fix errors related to joints setup with two non-dynamic bodies
|
|
|
|
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
|