23-08-2021, 08:12 PM
(18-08-2021, 07:43 AM)josemendez Wrote: You can't use different resolutions for different parts of a softbody. The reason for this is that it would yield different physical behavior in different parts of the mesh due to different discretization of the space, which is pretty much always undesirable: zones with more particles would be more compliant (elastic) than zones with less particles.
If you really want to do this despite the drawbacks, keep in mind you can use completely different meshes for blueprint generation and rendering. See:
http://obi.virtualmethodstudio.com/manua...inner.html
So a relatively easy approach to do what you want would be authoring a mesh that's similar to the other you're rendering, but distribute vertex density differently throughout the mesh. Use this mesh for blueprint generation. Then use a small particle size when generating the blueprint, such that one particle is generated for each vertex in your mesh. This will take care of vertex density, however cluster radius will still be homogeneous throughout the mesh so certain zones will have a denser cluster network. This is actually a good thing as it reduces simulation dependency on discretization (regions with more particles are more densely interconnected, which compensates for decreased convergence).
If this doesn't do the job for you, you also have the option of deriving ObiSoftbodyBleuprintBase and creating your own blueprint generator. It's more work, but allows you to create particles and constraints any way you need.
Writing custom blueprint generator is an interesting approach, but first I'll try to stich multiple softbodies together.
I have a new question: is the runtime constraint indices data the same with the stored constraint indices data? Like, if I located a constrain for a particle in a batch in the stored data, will the batch index and the constraint index and the index for the particle index always be the same in the runtime data?