Originally, we tried using realistic to semi-realistic water sims for our film. However, it did not feel cohesive with the other stylized shaders of our film. Eventually, after a number of other tests, I tried a water test using brush strokes for water particles. I made the color of the brush stroke a function of the velocity and vorticity of the underlying particle and the result looked more cohesive with our world. We eventually realized that this setup has limitations regarding the camera angles. Our film has a lot of dynamic cameras and as a result, we could not move forward with this setup.
Next, I moved to a more shader based approach. This was the first time I created a shader from scratch in Houdini and had to go through a lot of trial and error. I started with creating a shader that used the velocity and vorticity as its color input. However, this looked flat and needed tweaking. I implemented a ramp to adjust the velocity and vorticity before it plugged to the color. This was when I started looking at a lot of references and took inspiration from riot games cinematic trailers as they had similar stylization to what we had envisioned. I added emission and created a custom attribute to drive it.
The references I looked at also had white water. I created a seperate shader similar to the first one with to apply to the white water mesh.