Breakdown: Simulating Ice Growth in Houdini

Yongji Chen prepared a little breakdown of his Ice Bunny simulation made in Houdini.

Prepare the Geometry

The first thing I did was adding noise on the bunny by converting the geometry to VDB object and then use Worley noise in Volume VOP to let the surface look more organic. The type of VDB I used was SDF here.

1 of 2

Once I got the shape I want I generated the points from the geometry. I selected the bottom layer of the points and grouped them as “Eater” and grouped the rest of the points as “food”.

Create the Solver

The solver was actually pretty easy to set up and the VEX code I used was quite short.

if(@group_eater==1){

    int pclist[] = pcfind(0,"food","P",@P,@pscale,400);

    foreach(int n; pclist){        

        setpointgroup(geoself(),"food",n,0,"set");

        setpointgroup(geoself(),"eater",n,1,"set");        

    }

}

The pscale attribute controls how fast the ice growth can be. And we can randomize the pscale to make the growth look more realistic. 

I used two different types of noise in the point VOP and offset the noise by frame.  I also used a volume sample in the point VOP to get the SDF value from the bunny and used a fit node to multiply that value with the pscale. So the closer the growth is getting to the surface of the bunny, the slower it is going to expand. 

Final Process for the Output from the Solver

When I got the output points from the solver I converted the points to VDB again. Add another layer of the noise to generate inner crack which can help me render out more realistic refraction of the ice. After that, I converted the VDB back to the polygon. The VDB type I used this time was density.

An inner look of the geometry:

In order to make the ice foggier, I also created a new render geometry and linked that to the volume VOP I just used for generating the inner crack.

That’s all the breakdown for my ice bunny, thanks for reading!

Yongji Chen, CG Generalist & FX Artist

Keep reading

You may find this article interesting

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more