Nodes - RealWave (RW)

RealWave is a powerful wave simulation toolset for small to mid-range ocean surfaces with versatile features. Objects, for example, are able to provoke waves from interactions; they can contribute to foam-maps or generate splash particles. Even particles from standard emitters are able to create waves and ripples. Another principle behind RealWave is the use of predefined modifiers to achieve various types of different conditions from calm or breezy to stormy. All these modifiers, objects, and particle-based waves can be combined without any limitations. Finally, scripting opens another dimension by giving you the ability to use your own formulas or load displacement maps for custom waves. The only wave form that cannot be simulated with RealWave native tools are breaking waves. This type can often be seen near coasts or on a very rough and turbulent sea, where the waves get high enough to become unstable, and finally break. With RealWave’s ability to connect wave surfaces and objects it is even possible to create impact waves. For the creation of breaking waves, RealFlow provides the grid-based Hybrido fluids or custom Python/C++ approaches.

The idea behind RealWave is the displacement of a mesh’s vertices to achieve certain wave forms and structures. With RealWave it is possible to simulate complete ocean surfaces including all primary and secondary effects, such as foam or spray. The combination of different modifiers allows you to simulate an almost infinite variety of waves and the interaction of waves and rigid body objects or pre-animated items is another strong feature. All these possibilities and a wide range of further options make RealWave fairly unique, because there are no limitations regarding interaction of RealFlow’s dynamics and fluid solvers. The only restriction in terms of interaction is that there can only be one RealWave mesh in a scene. For use with 3D programs, it is necessary to store the meshes into SD files or the Alembic format.

Aside from all these benefits, RealWave is fully customizable and the results can even be meshed to establish seamless connections between the ocean surface and the particles, e.g. for impressive splashes. And all this is performed at high simulation speed, because RealWave uses all of your CPUs and cores. Another strong feature is RealWave’s ease of use. Links between the various solvers are simply established with drag and drop. RealWave interaction with other nodes can be controlled with the “Relationship Editor” and each object and emitter has its own RealWave parameter set for adjusting this interplay to your own special needs.

RealWave is based on a so-called hexamesh structure. This name is based on the arrangement of triangulated patches resulting in a hexagonal pattern. The size of these patches can be adjusted to create a denser mesh with higher resolution to show more details and finer structures.

RealWave Surface Modifiers

When a RealWave mesh is added you will see nothing more than a flat surface. It is possible to make various basic adjustments on the mesh, for example decreasing polygon size or enabling foam maps, but all these settings will not create any wave structures. To do that, a so-called modifier is required to displace the mesh.

Modifiers are added with a right-click on the RealWave node. In the appearing context menu click on “Add”, and choose one of the modifiers. You can add as many modifiers as you want and combine them freely. Once you have added a modifier it will be attached to the RealWave node. Expand the node with a click on the “+” symbol and highlight the modifier. Now you have access to its settings. These are the available modifiers:

RealWave-Object Interaction

One of the most interesting features is RealWave’s capability to react on interacting objects of any shape and even particles from standard emitters. All these elements can influence the surface , create new waves or resonance and interference phenomena. Objects and particles change the direction of motion of the waves and can act as static obstacles where the waves become reflected. It is even possible to simulate the underwater behaviour of objects in a physically correct way. Submerging, emerging and floating effects are controlled via a body's mass or density. So, even in areas, where the body has obviously no contact to the RealWave surface, you will see a correct motion, because both elements – RealWave and the object – are coupled.

Particles are able to react on the waves as well and they can be used to create propagating ripples and small turbulences. Splashes from objects, or on top of cresting waves, can interact with the surface directly, they can accumulate in the waves' “valleys” and/or be deleted when they hit the wave mesh. Both particles and objects can also be used to generate foam maps. These maps represent the areas where you can observe spray or foam structures in real life, for example in a ship's bow wave or when a stone hits a water surface.

All this is calculated automatically and RealWave provides full control over strength, look and behaviour of the different interactions.

One common misunderstanding with objects and RealWave is that interacting bodies are able to cut holes into the polygon surface, for example when a 3D model of ship is moving on a RealWave surface. The surface will always intersect the ship and literally go through it. Or: when you change the ship node to “Wireframe” you will see the RealWave surface inside the object. A dynamic calculation of opening and closing holes around the ship's body is technically impossible with RealWave.

RealWave Emitters

The RealWave technology comes bundled with two specialized emitter nodes. These particle sources can only be used in combination with RealWave surfaces and do not work as stand-alone emitters. The basic parameter set is exactly the same as with RealFlow's standard particle emitters and the only differences are the object- and crest-splash specific panels. You can even choose which particle type you want to use for your simulation. The RealWave emitters are discussed separately: