syntheticperson 2 Posted October 9, 2021 I am working on a sequence where we show a future robot mission exploring an icy moon in gale-force winds. We want ice growing on parts of the robot, breaking off, and being carried away by the wind in an endless feedback loop. For the ice growing, I have a SOP solver that turns parts of the geometry into VDBs then using VDB reshape Dialate with a noise mask. Which has the growth look I'm after. Then I'd like a subset of this to be fed into an RDB solver that shatters and breaks pieces off to be carried away by a wind force. How do I remove these pieces from the SOP solver in a feedback loop? Is there a way to chain a SOP solver and an RBD solver in a multisolver? Any suggestions would be much appreciated. Thanks 1 Share this post Link to post Share on other sites
Librarian 848 Posted October 10, 2021 v[]@pos; for (int i = 0; i < chi("BAckstep");i++) { insert(v[]@pos,0,@P); } //solver attCOpy vector p1 = point(1,"P",@ptnum); pop(v[]@pos); insert(v[]@pos,0,p1); float speed = length(@v); float dir = dot(normalize(@N),normalize(@v)); f@speedBack = fit(speed,chf("minspeed"),chf("maxspeed"),0,1); @speedback = chramp ("speedRemap",@speedBack); f@dirBack = fit(dir,-1,1,0,1); @dirBack = chramp("normalRemap",@dirBack); float MIXER = f@speedBack; MIXER = lerp(MIXER, 0, 1-f@dirBack); MIXER = MIXER * (chi("Backstep")-1); @P = lerp(v[]@pos[int(MIXER)],v@pos[int(MIXER)+1],frac(MIXER)); Share this post Link to post Share on other sites
syntheticperson 2 Posted October 10, 2021 Cool! Thanks for sharing. What I'm going to try is using TOPS that does the following: start with robot geometry as ice source grow ice using VDB reshape with dilate using an animated volume vop as noise mask. cut random pieces out using particles placed on the surface as centers of boolean cuts Write the resulting "swiss cheese" geo to a file feed the cut-out pieces to RDB shatter and wind force go to step 2, but with the swiss cheese file as the source Share this post Link to post Share on other sites