Thaddeus Crews
8c0900450c
Merge pull request #108495 from simpkins/deadlock_comments
...
Document some deadlocks in the physics server code
2025-07-18 11:05:12 -05:00
Adam Simpkins
cb25b933e7
Document some deadlocks in the physics server code
...
Add some comments documenting locations where
PhysicsServer3D::soft_body_set_mesh() can deadlock.
godotengine/godot-proposals#12670 has a proposal for some alternate
thread-safe soft body APIs. In the meantime it seems worth at least
documenting some of the current pitfalls in the code.
2025-07-13 13:44:48 -07:00
Mikael Hermansson
5a16e2fc78
Fix contacts not being reported properly when using Jolt Physics
2025-07-12 14:20:38 +02:00
Thaddeus Crews
b7dcb1f728
Merge pull request #108094 from simpkins/jolt_soft_body_transform
...
Jolt physics: wake up a soft body when its transform changes
2025-07-03 12:21:27 -05:00
Mikael Hermansson
63021bb4aa
Improve performance for shapeless objects when using Jolt Physics
2025-07-03 14:14:00 +02:00
Adam Simpkins
71e3a229f6
Jolt physics: wake up a soft body when its transform changes
...
This updates `JoltSoftBody3D::set_transform()` to wake up the
soft body after changing the transform.
Previously, if you had a soft body that was sleeping in a steady state
on a ground plane, and you then translated it upwards by 1 meter it
would just hang in the air. Now it falls to the ground correctly.
Issue #108090 has some details and an MRP (although that issue is mostly
about other problems in SoftBody3D iteself).
2025-06-28 16:34:51 -07:00
Rémi Verschelde
f97c51132e
Merge pull request #107832 from simpkins/soft_body_normals
...
Fix Jolt Physics soft body vertex normal calculation
2025-06-28 13:03:01 +02:00
Adam Simpkins
dd80a3aa19
Fix jolt_physics soft body vertex normal calculation
...
The code previously iterated through each face and set all vertices to
that face's normal. This resulted in each vertex getting the normal
from just one face that it belonged to (whichever face was last in this
array). This caused weird shading artifacts.
This fixes the code so that the vertex normal is now the average normal
of all faces that it belongs to. This results in "smooth shading"
behavior for soft body meshes. This is still somewhat undesirable if
the input mesh was using flat shading, but it looks less bad than the
previous behavior of picking a normal at random from one attached face.
This matches the behavior of GodotPhysicsServer3D.
Fixes #107831 .
2025-06-27 17:04:15 -07:00
Mikael Hermansson
50e24e24ed
Fix crash when disabling SoftBody3D while using Jolt Physics
2025-06-27 12:52:47 +02:00
Mikael Hermansson
89f9a23d9e
Batch the adding of Jolt Physics bodies
...
Co-authored-by: Jorrit Rouwe <jrouwe@gmail.com >
2025-06-14 14:11:07 +02:00
Mikael Hermansson
e160040f0c
Remove Jolt Physics project setting "Areas Detect Static Bodies"
2025-06-03 09:52:57 +02:00
Mikael Hermansson
b3ddb88035
Fix Area3D signal emissions when using Jolt Physics
2025-05-30 11:53:17 +02:00
Thaddeus Crews
dcde70f409
Merge pull request #106693 from mihe/jolt/area-cleanup
...
Remove force enter/exit logic from `JoltArea3D`
2025-05-28 09:47:40 -05:00
Thaddeus Crews
05ceab6b7b
Merge pull request #106321 from elzewyr/shrink-factor
...
SoftBody3D: Add a property for scaling rest lengths of edge constraints
2025-05-27 09:39:29 -05:00
Thaddeus Crews
de2cd663fd
Merge pull request #100463 from PiCode9560/softbody-apply-force-and-impulse
...
Add ability to apply forces and impulses to `SoftBody3D`
2025-05-26 11:24:45 -05:00
PiCode
fe3aaa2ae3
Add functions to apply impulse and force to SoftBody on GodotPhysics and JoltPhysics
2025-05-23 22:04:52 +03:00
Mikael Hermansson
d153a267b0
Remove error for degenerate soft body faces when using Jolt Physics
2025-05-22 20:17:47 +02:00
Mikael Hermansson
3d98aaf728
Remove force enter/exit logic from JoltArea3D
2025-05-21 21:40:40 +02:00
Thaddeus Crews
c225686e82
Merge pull request #106490 from mihe/jolt/non-monitoring-area-performance
...
Improve performance with non-monitoring areas when using Jolt Physics
2025-05-21 09:06:26 -05:00
Mikael Hermansson
617a39d5ea
Improve performance with non-monitoring areas when using Jolt Physics
2025-05-20 13:20:12 +02:00
Elzewyr
9f67bf96fa
SoftBody3D: Add a property for scaling rest lengths of edge constraints
2025-05-16 18:38:00 +03:00
Thaddeus Crews
5e27318b6c
Merge pull request #106366 from jrouwe/fix_106301
...
Jolt physics: Setting position instead of velocity in `JoltSoftBody3D::set_vertex_position`
2025-05-15 10:22:29 -05:00
Jorrit Rouwe
c529f36532
Jolt physics: Setting position instead of velocity in JoltSoftBody3D::set_vertex_position
...
This fixes a discrepancy between godot physics and Jolt physics where in Jolt a vertex pinned to a body only gets its velocity updated while in godot it gets its position updated. This causes it to lag one frame behind.
Fixes #106301
2025-05-13 22:45:58 +02:00
Mikael Hermansson
9cea7ebc91
Fix SCU build issues related to Jolt Physics
2025-05-13 12:34:55 +02:00
Mikael Hermansson
f539d0a447
Remove emitting of error in JoltBody3D::_exit_all_areas
2025-05-06 11:36:22 +02:00
Mikael Hermansson
2b88477efc
Remove no-op locking in Jolt Physics module
2025-04-29 12:23:24 +02:00
Aaron Franke
a5de242a2f
Place a hard limit on the max_contacts_reported property
2025-03-29 01:17:55 -07:00
Thaddeus Crews
768d75a248
Merge pull request #101254 from mihe/jolt/better-settings
...
Refactor Jolt-related project settings to only be loaded as needed
2025-03-13 08:57:43 -05:00
Thaddeus Crews
324512e11c
Style: Replace header guards with #pragma once
2025-03-07 17:33:47 -06:00
Mikael Hermansson
62e8b1e5fd
Fix broken negative scaling when using Jolt Physics
2025-03-02 01:14:19 +01:00
Mikael Hermansson
1006fa9c42
Skip Object::to_string when Jolt Physics is on separate thread
2025-02-11 22:55:32 +01:00
Thaddeus Crews
b7deb853c9
Merge pull request #102029 from mihe/jolt/area-mass-properties
...
Override mass properties for `Area3D` when using Jolt Physics
2025-01-28 09:03:40 -06:00
Thaddeus Crews
e5498020b6
Merge pull request #101815 from mihe/jolt/no-post-step
...
Refactor post-step operations in Jolt module to be done as needed
2025-01-26 11:49:21 -06:00
Mikael Hermansson
f380b00351
Override mass properties for Area3D when using Jolt Physics
2025-01-25 18:15:50 +01:00
Mikael Hermansson
a30410bbf5
Refactor post-step operations in Jolt module to be done as needed
2025-01-25 12:22:30 +01:00
Mikael Hermansson
3b78ff564a
Refactor Jolt-related project settings to only be loaded as needed
2025-01-25 12:18:52 +01:00
Mikael Hermansson
f4288fb349
Fix kinematic bodies not synchronizing state when using Jolt Physics
2025-01-19 16:18:14 +01:00
Mikael Hermansson
053d92401e
Improve performance of changing compound shapes when using Jolt Physics
2025-01-06 21:43:49 +01:00
Mikael Hermansson
7beaddc9c0
Improve performance with many static/sleeping bodies when using Jolt Physics
2025-01-01 21:30:02 +01:00
opsocket
0dd072b460
🐛 enforce bodies damping recomputation on mode switch at runtime
2024-12-18 16:07:04 -05:00
Mikael Hermansson
d470c2ac6a
Add Jolt Physics as an alternative 3D physics engine
...
Co-authored-by: Jorrit Rouwe <jrouwe@gmail.com >
2024-12-11 13:57:25 +01:00