Jorrit Rouwe

325 posts

Jorrit Rouwe

Jorrit Rouwe

@jrouwe

Lead Game Tech Programmer at Guerrilla Games, creator of the Jolt Physics library. @[email protected], @jrouwe.bsky.social

انضم Kasım 2009
154 يتبع3.3K المتابعون
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@dzmitryj_ Unfortunately the GPU raycasts never made it because the overhead of going to the GPU and back was too much at the time. Someday they will be back though!
English
2
0
5
799
Dima
Dima@dzmitryj_·
@jrouwe Can't wait to implement the first case of the GPU Solver in UE5. the raytraces are definitely hitting on tick.
English
1
0
3
817
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
Jolt Physics just hit 10K GitHub stars! What started in 2014 as a CPU vs GPU ray casting experiment became a full physics engine in 2021. Seeing what you’re building with it is amazing. Thank you!
Jorrit Rouwe tweet media
English
10
31
671
19.5K
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@Ademola_4life You might be running out of memory. By default it uses a fixed memory pool which you can configure here: #L30-L37" target="_blank" rel="nofollow noopener">github.com/jrouwe/JoltPhy…
English
1
0
1
27
Ademola
Ademola@Ademola_4life·
Anyone have good experience with Jolt physics on the web when handling large trimesh (something like sponza)? For me it just crashes, but rapier 3d handles that well
English
1
0
0
75
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@BattleAxeVR No IK is not part of Jolt (I would categorize it under 'animation' rather than 'physics')
English
1
0
0
37
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@BattleAxeVR You have to apply gravity, but the ground check is included. It's only a couple of lines of code: #L139-L174" target="_blank" rel="nofollow noopener">github.com/jrouwe/JoltPhy…
English
1
0
1
44
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@BattleAxeVR Mirroring works too, see all the samples in the ScaledShape folder.
English
1
0
1
28
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@BattleAxeVR Yes, adding automatic convex decomposition is on my rather large to do list.
English
1
0
1
26
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@BattleAxeVR It references your original shape, so no triangles are duplicated. If you use non-uniform scale on CompoundShapes then it may create a new CompoundShape, but whatever is in the CompoundShape will not be duplicated.
English
1
0
1
22
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@BattleAxeVR About the convex hulls: PhysX is using 'convex decomposition' (creating multiple convex hulls). Jolt only creates a single convex hull. You'll need another library to do the decomposition, e.g. github.com/SarahWeiii/CoA…
English
2
0
1
286
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@BattleAxeVR There is the JoltViewer, but it doesn't connect over a socket like PVD does, it reads from a file that you can produce with DebugRendererRecorder. I usually just draw physics object in the game window using the DebugRenderer.
English
1
0
1
21
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@BattleAxeVR You wrap a MeshShape in a ScaledShape (which is a tiny class). There's an example of dynamicaly scaling an object here: #L33-L54" target="_blank" rel="nofollow noopener">github.com/jrouwe/JoltPhy…
English
1
0
1
51
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@BattleAxeVR What's wrong with the convex hull generation code? Send me the points that cause issues and I'll take a look. (Note that I did a tweak to the generator this week)
English
1
0
1
25
Jorrit Rouwe أُعيد تغريده
Stellarica Interactive
Stellarica Interactive@Stellarica_io·
Early prototype of a real-time, physics-driven car deformation system built in Godot on top of Jolt Physics. All deformation is computed at runtime (no pre-baked damage), and it runs in real time on older mobile hardware. Video: youtu.be/5Msbd0XtCsg
YouTube video
YouTube
Stellarica Interactive tweet media
English
1
1
43
2.2K
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@mannyn83 I have to still make an option for DX12 to directly load compiled shaders instead of compiling hlsl on the fly.
English
0
0
1
35
Manfred M. Nerurkar
Manfred M. Nerurkar@mannyn83·
Thanks, one thing I noticed is the Map/Unmap which is not so great for WebGPU. It might be better to do a ReadAsync and WriteAsync that passes a lambda, the buffer is locked for the duration of the callback. Does Jolt want to create the program from it's own shader source? If so it would be good to allow this to be handled externally, eg Jolt requests the creation of a named shader and we can construct internally as we would store in our own packages where the FS is entirely virtual.
English
3
0
1
99
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
A sneak peak of what I've been working on: A strand based hair system for Jolt Physics (WIP): youtu.be/Rl19G0c003o
YouTube video
YouTube
English
4
17
220
26.8K
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@mannyn83 > Does Jolt want to create the program from it's own shader source? CreateComputeShader(const char *inName, ...) passes in a name. Where you get the shader from is up to you. The default DX12 implementation uses mShaderLoader to load hlsl, Vulkan/Metal load compiled shaders.
English
1
0
2
90
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@mannyn83 > Thanks, one thing I noticed is the Map/Unmap which is not so great for WebGPU Ok, I'll think about that.
English
0
0
2
34
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@mannyn83 I did attempt to make that abstraction in a way that is hopefully easily integrated (with DX12, Vulkan and Metal implementations): github.com/jrouwe/JoltPhy…. Let me know what you think of it.
English
1
0
3
302
Manfred M. Nerurkar
Manfred M. Nerurkar@mannyn83·
@jrouwe Nice! Would be great to have a generalized mechanism to dispatch compute, so we can properly integrate with our backend abstractions.
English
1
0
0
344
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@datgame The 4ms is measured on GPU, the CPU part is about 0.1 ms (broad phase collision detection + setting up compute jobs). And it is indeed one way: physics objects affect the hair, but the hair doesn't affect the physics objects.
English
0
0
1
105
Niklas Lundberg
Niklas Lundberg@datgame·
@jrouwe Yes :-) I see now the youtube title says "gpu", but i just assumed it to be "cpu" from the tweet. Guessing it makes it harder to measure on gpu? Also, this is for pure vfx? i.e. physics affect the hair, but not the other way around? So, no determinism to worry about either.
English
1
0
0
106
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@datgame If you're talking about how fast it runs: Currently 4 ms on my 5070 Ti laptop GPU with the sim running at 360 Hz. I have to further optimize it though.
English
1
0
0
295
Jorrit Rouwe
Jorrit Rouwe@jrouwe·
@SubstrataVr I've created support for DX12, Vulkan and Metal. Didn't do OpenGL, but it would certainly be possible.
English
0
0
2
291
SubstrataVR
SubstrataVR@SubstrataVr·
@jrouwe Awesome. How does the GPU support work? Will it work with OpenGL?
English
2
0
1
635