First refactoring
I’ve completely reworked my setup. Its now building a mesh by lofting my control curves together into a stable mesh. So the wave is no longer ‘moving’ through a grid mesh.
This means that I’ll have to create the effect of the wave slipping under the water surface by manipulating UV cordinates and such when rendering.
It however does provide a nice and stable mesh which makes it much easier to define different zones for rendering later and it also helps a lot for defining the lip for generating lipspray and the whitewater. So the particle systems are much easier to control now. Sometimes it helps a lot to read about how other did something before
The system is now fully procedural, so you can basically specify the size and resolution of the wave and the resolution of the control rollers. The rest is automatically generated by Python and a Foreach loop within the sop network.
The resolution on the control rollers did provide an interesting challenge… I needed to smoothly interpolate between the rollers and the actually mesh resolution. It so happens to be that Houdini doesn’t have a nice function which can do a cubic interpolation which you can use in an expression. It has such functions for keyframe interpolation but not generically. So I ended up have the control rollers drive a curve, which then does the interpolation (after subdividing it once) I’m going to look for a python function that can do cubic interpolation directly or write one myself as this will make the setup easier.
Lastly, I’ve included a force attribute to the wave which specifys the force with which the lip of the wave is crashing down (this was also hard to do with the previous setup). This force now drives the lip-spray system and will be very important for the whitewater as well.
Anyway, another step forward:
Cheers,
Erik