By IAN FAILES and IGOR ZANIC
By IAN FAILES and IGOR ZANIC
In visual effects, artists are often given a problem to solve. They will need to reach the desired outcome of the client, but it can often be up to the artist or studio what tool they may use to solve the problem.
What if you were asked to build a flowing waterfall for a scene – where would you start? What tool or tools would you use to simulate the flowing water of a waterfall? Arguably the two most used and accessible tools for such a task in VFX right now are SideFX’s Houdini and Autodesk’s Maya Bifrost.
Houdini is well known for its procedural approach to animation and effects and offers a number of solvers, such as pyro and particles, for handling fluid simulations. Bifrost in Maya is now a fully-blown visual programming language that also allows for the generation of procedural effects, although when first implemented into Maya its strength was in fluid simulations.
Here, FX technical director and visual effects trainer Igor Zanic, a co-founder with Saber Jlassi of online VFX training website Rebelway.net, which specializes in FX and procedural effects-related courses, outlines in simple terms how an artist might begin the process of crafting a waterfall in both Houdini and Bifrost.
Zanic is an experienced Houdini user, but he was also one of the first freelance artists to try out the precursor to Bifrost, a fluid simulation tool called Naiad. He has contributed to a number of projects that were heavy in water simulations and other FX sims, including Shark Night 3D, Kon-Tiki and The Man in the High Castle. Zanic has also worked previously for both SideFX and Autodesk as an artist and technical director.
In the steps below, Zanic shows how similar-looking waterfalls, where water is flowing – essentially colliding – over rocks, can be simulated in both Houdini and Bifrost with somewhat relatively similar procedures. Some of the differences relate to generating the fluid simulation and the water simulation itself, foam generation and the caching and meshing process.
While these steps might not instruct you in exactly which buttons to push in each tool or which nodes to create and use, they will hopefully give you a guide to getting started in each piece of software.
MAKING A WATERFALL IN HOUDINI
1. Preparing assets for simulation
When we import our geometry into Houdini, the first thing we want to be sure of is that it has the correct scale. Sometimes an object coming from other software will appear in a different scale. The next step is to optimize and prepare the geometry for simulation. This includes doing things like ensuring that the geometry is closed so there are no object edges. Also, if the object is high-res, we create proxy geometry. After optimization, we can set up our collision geometry for simulation, creating proxy collision geometry and volume.
2. Prepare source for simulation
Before we set up our waterfall fluid simulation, we need to decide where we want to put our emitter for the fluid simulation. This emitter can be a single object or a few smaller objects. Then we will need to add initial velocity to push the fluid in one direction, and also to add a bit of noise on top to break the uniform source.
3. Set up and cache fluid simulation
After we set up our collision geometry and source, we can set up our fluid simulation. The next step is to tweak parameters such as resolution, fluid simulation boundary and a few other attributes to arrive at a suitable simulation look. The last step here is to cache our fluid simulation.
4. Set up and cache water simulation
Using our cached fluid simulation, we create a water source, isolating just the areas where we want our whitewater simulation to emit. The next step is to cache our whitewater source to be faster for our whitewater simulation to read. We then set up the whitewater simulation and cache that final simulation.
5. Mesh fluid simulation
Using our cached fluid simulation, we combine particles and volume to create our final mesh. After the mesh is done, we transfer attributes from the fluid simulation particles to the mesh. The final step is to cache our fluid mesh, and this allows us to continue creating a waterfall scene in Houdini, or elsewhere.
MAKING A WATERFALL IN BIFROST
1. Prepare scene and assets for simulation
While these steps for Maya Bifrost are similar to those outlined for Houdini, there are a couple of differences, so please note them. When we import our geometry into Maya, the first thing we want to be sure of is its correct scale, as in Houdini. The next step, again, is to optimize and prepare the geometry for simulation. Remember, this involves ensuring the geometry is closed so that there are no open edges. Also remember that if the object is high-res, it’s important to create proxy geometry.
2. Create Bifrost Liquid and add source
Before we set up our waterfall fluid simulation in Bifrost, we need to decide where we want to put our emitter, just like with Houdini. It can be a single object or a few smaller objects. We select our emitter and add Bifrost Liquid from the shelf, and then we also create a source tab with all the relevant settings. After that, we add the initial velocity to push fluid in one direction, and then we set up our liquid properties such as resolution.
3. Add collision geometry and cache fluid simulation
After we set up our initial Bifrost Liquid container, the next step is to add collision geometry. Sometimes it is better to split every piece of geometry into separate collision geometry, or you can group objects for better control. We also now create a Bifrost kill-plane to limit our waterfall so that it’s not falling into infinity. The last step here is to cache our fluid simulation.
4. Set up and cache foam simulation
Using our cached fluid sim, we create a foam source, isolating only areas where we want the foam simulation to emit. The next step here is to tweak our desired foam parameters, and then we cache our foam simulation.
5. Mesh fluid simulation
Using our cached fluid sim, we create our final mesh. We tweak the settings for our mesh to get the look we want. The final step is to cache our fluid mesh, which enables us to continue to develop the scene in Maya or elsewhere.