You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've compared Jolt to PhysX 4, PhysX 5 and bepuphysics2 for large worlds today. The result: Jolt is unusable in big static worlds.
From the project readme it looks like it's designed to load and unload only the nearby area. On a dedicated server this isn't really possible however.
What I'm doing:
load a 128x128 chunk grid (each 64m² in size, custom meshes with varying detail between ~256-2048 triangles)
add each chunk as static collider into the physics simulation
spawn 2000 dynamic rigidbody balls at terrain center in the air
run the simulation at 50hz / 20ms per tick
While PhysX and bepuphysics2 handle this easily, Jolt completely dies with a high amount of static colliders in the simulation. After around 10k static colliders the tick times are completely unacceptable already (200ms+).
PhysX and bepuphysics2 on the other hand can easily handle 2 million chunks/static colliders with less than 5ms per tick. (this is an extreme and unlikely test case, but puts the difference to Jolt clearly into perspective)
I've also tested it with regular box colliders instead of meshes, with the same result. After ~10-20k static colliders (with spacing between them) Jolt gets unusable, while PhysX and bepuphysicsv2 stay totally unimpressed far into the millions.
So... is this expected? or is there something special I have to do for this usecase to work?
The text was updated successfully, but these errors were encountered:
I would say that a lot of static colliders should not be a problem. Horizon easily had 100K static colliders active at the same time and the update took a couple of ms. Have you perhaps misconfigured your object layer configuration so that you're mixing dynamic and static objects in the same broad phase tree? The majority of those static objects should be in a tree that changes very infrequently.
I've compared Jolt to PhysX 4, PhysX 5 and bepuphysics2 for large worlds today. The result: Jolt is unusable in big static worlds.
From the project readme it looks like it's designed to load and unload only the nearby area. On a dedicated server this isn't really possible however.
What I'm doing:
While PhysX and bepuphysics2 handle this easily, Jolt completely dies with a high amount of static colliders in the simulation. After around 10k static colliders the tick times are completely unacceptable already (200ms+).
PhysX and bepuphysics2 on the other hand can easily handle 2 million chunks/static colliders with less than 5ms per tick. (this is an extreme and unlikely test case, but puts the difference to Jolt clearly into perspective)
I've also tested it with regular box colliders instead of meshes, with the same result. After ~10-20k static colliders (with spacing between them) Jolt gets unusable, while PhysX and bepuphysicsv2 stay totally unimpressed far into the millions.
So... is this expected? or is there something special I have to do for this usecase to work?
The text was updated successfully, but these errors were encountered: