User Interaction in Blender #353
Replies: 1 comment 6 replies
-
Hi @BradyAJohnston, first of all, nice work, that's great to see such an integration! You might have seen it already but we're shipping a similar sample scene within our I'm guessing the reason for your lower frame rate is due to the particle data needing to do roundtrips between the CPU and GPU, which can end up being a large overhead in comparison to the compute cost. Usually, the larger time delta between two simulation steps, the larger interpenetrations the solver needs to resolve, and the more unstable collision handling becomes. Adding more substeps is necessary to provide a finer granularity to the solver and give it a chance to handle these collisions more gracefully. On the bright side, you should only need to send the data back to the CPU after each simulation step, not after each substep, so adding more substeps shouldn't be too costly. |
Beta Was this translation helpful? Give feedback.
-
I've got a working prototype of Warp running and being interacted with inside of Blender:
blender_Y3ji8MOz1b.mp4
blender_S86FD61Oa4.mp4
So far it is working really well, but before I get too ahead of myself I wanted to see if anyone had any tips on best way to interface user interaction.
The current setup I have is to have a rigid body added to the scene, then I am just manually setting the
body_q
based on the transformations the user controlled object in Blender.Setup of rigid body and particles:
Handling simulation steps:
After each simulation step I am updating the mesh inside of Blender with the particle positions for interactive rendering.
Is using a rigid body for this the best approach? More substeps (XPBDIntegrator) does lead to a slightly more stable simulation, but particles are still bouncing away pretty wildly (because of my infinitely heavy object I cam controlling moving through the scene I suppose).
Just after some potential tips for this approach if possible, would be very much appreciated!
Beta Was this translation helpful? Give feedback.
All reactions