On this page |
Overview ¶
Houdini has tools for simulating the propagation of waves and ripples across a surface. This can be useful for simulating, for example, an ocean surface.
Note
Houdini 20 and higher provides a fast, OpenCL-based Ripple Solver SOP with a slim UI and new posibilities. For more information, go to Ripple Solver.
The solver compares the “current” shape of the surface to a “rest” surface to determine which parts of the surface are “high” and “low”, then uses that information to simulate ripple propagation.
Waves cannot be concave, since the solver only displaces points on the surface “up” and “down”.
Tools ¶
The Ripple Object DOP sets up a dynamics object for rippling. The Ripple Solver sets up a dynamics object to be solved.
The Ripple surface node deforms a grid to add concentric ripples. You can animate this node’s parameters to “fake” simple ripples, or use it to set up the initial conditions for a true dynamics ripple simulation.
The Waveform tool deforms a surface into a wave shape with a direction. The Ripple solver has specific code to propagate waves created with this tool.
How to ¶
-
Create a Grid.
-
Apply the Ripple tool to deform the surface.
-
In the network editor, go into the grid’s geometry object.
-
Create a Null node branched off the initial Grid node and name it
NULL_OUT
. -
Create another Null node after the ripple node and name it
RIPPLE_OUT
. -
Go back up to the Scene level and use the tab menu to create a DOP network.
-
Go into the DOP network and create a Ripple Object DOP. In the parameter editor, set Initial SOP Path to the path of the
RIPPLE_OUT
null (e.g./obj/geo1/RIPPLE_OUT
). Set Rest SOP Path to the path of theREST_OUT
null (e.g.obj/geo1/REST_OUT
). -
Create a Ripple Solver and connect the output of the Ripple Object node to the input of the Ripple Solver. Make sure the display flag is set on or after the solver node.
-
Click Play to play the simulation.
Tips ¶
While ripples are easiest to understand on a height field, use of these nodes is not restricted to grids. Ripples can propagate along a curve, through a 3d lattice of points, or even across a complicated triangular mesh.
Waves can rebound against edges. You can paint attributes to create areas of fast, slow, or no wave propagation.