The goal of this project was always to create a beautiful and peaceful piece that somebody would see and want to be instantly transported to.
It was an exciting challenge to map out and block out the initial geometry and placing of assets for this project; I wanted it to feel like a complete environment and highlight the water FX I did on it.
I had always wanted to do a waterfall; this was the perfect time to do it; I rendered the water and whitewater in Karma CPU and all the geo with Karma XPU.
I took reference from real life, referencing a couple of small waterfalls inside of a forest environment. I liked the murkiness of some of the waterfalls, inherently having a green tint and muddy looking fluid with wild vegetation growing around the river. Something that looked unkept and away from human intervention.
Following dialing in the look I wanted, I started blocking out the environment at first with basic shapes and then moved on to replace those shapes with megascans assets. After the initial low resolution block out, I figured out the camera motion and locked my camera in and started working on the FLIP Sim.
While working on the FLIP sim, I ran into interesting problems. I was simulating the actual waterfall and the ground river as two separate FLIP sims, so I could have better control over the behavior as well as having the ability to upres the individual point count as needed for each sim. The issue with this was that between the seam of the water from the waterfall hitting the actual base river, I had to come up with a way to create fake splashes.
I achieved faking the splashes by adding a separate flip source right underneath the seam and giving it a custom velocity field going upwards with a fair bit of noise.
After everything was setup and ready to be rendered. I started setting up materials inside of the stage context of Houdini. I worked in Solaris to render out the whole sequence layer by layer, assigning karma xpu and karma CPU to different tasks. Since Karma XPU is in beta and did not support reflections on volumes (needed for whitewater), I decided to render out the whitewater on the CPU, as well as the water since XPU does not support opacity at its fullest currently.
It was really useful and insightful working with USD, something the whole industry is moving towards to as a standard.
Once all the layers were rendered, I composited everything inside NukeX. Grading and glowing parts as I went, as well as utilizing crypto mattes to fix color and lighting in certain parts of the render. Since the renders from XPU were grainy, I had to utilize the aiDenoiser in cops in Houdini before exporting to Nuke to reduce Noise utilizing the Normal and Albedo passes.
Checkout other portfolio piece breakdowns here