anbt Posted January 21, 2021 Share Posted January 21, 2021 Hello guys, So I have been trying to make a cloth collide with an animation sequence that is changing topology. I started with vellum and I hit a wall. Apparently, Vellum doesn't handle collisions with changing topology stuff. So I need to find a solution around this. My animation sequence is converted into a VDB and what else beside vellum can I use to handle the cloth? Any other ideas? Tx Quote Link to comment Share on other sites More sharing options...
KarlRichter Posted January 22, 2021 Share Posted January 22, 2021 It is possible to use a VDB as a vellum collision object. You must setup your sim in a dop network, then add a static object collider with the collision type set to volume. Add the SDF VDB to the proxy volume slot, and set the mode to volume sample. While this does work, its not as accurate as using a geo collision object, and will have issues with fast moving colliders as there is no velocity data from the VDB. See attached for a simple example vellum_x_vdb.hip Quote Link to comment Share on other sites More sharing options...
anbt Posted January 22, 2021 Author Share Posted January 22, 2021 (edited) @KarlRichter Thanks. This is what I was kind of doing before but after clearing the SOP Path parameter on the static object, and just using the proxy VDB like you are saying, it started to work better but I still have some issues. My VDB is a humanoid shape. The arms (not that thin as there are no fingers, it's more like a tube) are passing through my cloth. Someone on the SideFX forum said: "Keep in mind that vellum collides only with points against volumes so you may need to make your cloth denser to avoid thin volumes like hands passing through" ---> not sure how to do this, I subdivided my cloth, no success and I tried to thicken the cloth before feeding through the vellum cloth but that doesn't change anything "You can further improve your solve by sticking constant topology inside of your volume to resolve fast motion collisions, the volume collisions will take it from there and push points out of the volume, otherwise you may miss fast movements as with volumes you will not get continuous tracking" ---> no idea how to do this for now Edited January 22, 2021 by anbt Quote Link to comment Share on other sites More sharing options...
KarlRichter Posted January 22, 2021 Share Posted January 22, 2021 Yeah, that's tough. Other things you might try are to increase the sub steps in the vellum solver and and then turn on "re-evaluate sops to interpolate geometry" in the static solver. If this is a VDB sequence, you might try using the time warp sop to interpolate the VDB on the subframes. Also make sure that the VDB is fully active on the "inside". You also might try making your VDB a little bigger with the VDB reshape. In the end, vellum just doesn't collide with a volume that well! In that past, i have even tried making my own collision "solver" to resolve this issue. I got t to work mostly, but it was super slow. 1 Quote Link to comment Share on other sites More sharing options...
anbt Posted January 22, 2021 Author Share Posted January 22, 2021 Thanks for the tips @KarlRichter I managed to make it work by thickening the cloth before feeding it in the vellum cloth, and increasing substeps but it looks stiff and I am loosing a lot of wrinkles now. Turning on "reevaluate sops..." makes the arm go through and without, it works. Maybe I have some other parameter that is conflicting with this! Yes, it is a VDB sequence. Not sure to understand what you mean with the timewarp sop. Should I just put this node before sending my VDB to the DOP network? (and turn on 'interpolate between input frames')? Yes with the VDB bigger it works a lot better. My issue is really with those arms that go through the cloth, and those arms are quite rounded with no hands. Quote Link to comment Share on other sites More sharing options...
KarlRichter Posted January 22, 2021 Share Posted January 22, 2021 (edited) Yeah, with the time warp node set it to interpolate between frames, and in the volume tab, set the blend mode to "by voxel position". then turn off "integer frame values" and scrub the time line to make sure the VDB is interpolating ok. Use that as the input so the "re-evaluate" thing in the static solver works properly. If the VDB changes too much between frames, this might not work, but you can give it a try! Also, really make sure the vdb is activated on the inside, that might help with the arms. Use the "vdb activate sdf" and set the halfwidth to 10 or whatever fills inside. Use the "vdbvisualizetree" to make sure. Edited January 22, 2021 by KarlRichter Quote Link to comment Share on other sites More sharing options...
anbt Posted January 22, 2021 Author Share Posted January 22, 2021 Ok, thank you very much. So before trying this, I had increased the offset surface of my static object (the VDB) to 0.006, substeps to 7 and constraint iterations to 10 and it works now, even with the cloth not being thickened beforehand. I tried with the VDB settings you said, reducing the offset surface back to 0, it didn't work So in the end, I made it, but things are reeeeaaallly slooowwwww! Cheers Quote Link to comment Share on other sites More sharing options...
KarlRichter Posted January 22, 2021 Share Posted January 22, 2021 Nice, Glad it worked out for you! Slow and working is better then not working at all! 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.