HyFLIP - Domain

The Hybrido domain can be seen as Hybrido's core element. It is the place where the simulation happens, it provides the physics to move the fluid, “prepares” the secondary effects and carries the particles that represent the fluid's body. The particles are considered to be mass-less and carry the fluid's velocity. Furthermore they also hold some important information that is used to create splashes and foam, as well as the Hybrido mesh.

When a domain node is added, it is represented as a square with small boxes in the corners. The boxes' size directly corresponds with the “Cell size” parameter in the “Grid” panel. The square represents the projection plane for the displacement feature and the image export options, e.g. for vorticity textures. The projection plane can be positioned anywhere, because it does not have any influence on where the fluid is finally created – this depends on the emitter's position. To fill the domain, or parts of it, Hybrido requires an emitter with an associated object and a force to accelerate the fluid. Once the simulation starts, RealFlow automatically calculates a bounding domain around the fluid body and updates it with each frame.

During the simulation, RealFlow writes the cache data to disk. Hybrido provides a wide variety of file formats. The default type is RPC, but you can also export the particles to other formats, for example Alembic – a platform-independent and flexible format. Field data can be written to “Grid Field Cache”, "OpenVDB", or “Field3D” files.

An interesting feature is the “Ocean Statistical Spectrum” option: it uses a statistical model of the open ocean to create the surface structures and this model strongly depends on the ocean’s dimensions. The method used is comparable to what you can find in the “Ocean Statistical Spectrum” wave modifier from RealWave. Therefore you will see some parallels with regards final output and parameters. If you want to get a feeling for these displacements, it is a good idea to perform some calculations with RealWave, because it is very fast and easy to control. The displacement information can be either added to the Hybrido mesh directly and/or stored separately as a sequence of displacement maps. These maps are then used to rebuild the ocean surface in your 3D program, for example with the RealFlow RenderKit's “RFRK_Displacement” tool. It is also possible to apply the displacement directly to a Hybrido mesh as a shader for preview purposes inside RealFlow. Another method to visualize the fluid surface is to use RealFlow's “Graphs” system. In RealFlow’s “scenes” folder you can find an example graph to preview the displacement. With the "Ocean Force" daemon it is even possible to transfer displacement data directly to a fluid's surface particle to create breaking waves

Open and Closed Domains

When you take a look at the “Liquid – Hybrido” shelf you will see two icons for creating domains. The first one is called “Open Domain” and when you click on this command, a Hybrido Domain node will be added. To finally create a fluid you also need an emitter object, e.g. a cube or sphere, and a force daemon like “Gravity” to make the fluid move. In a setup like that, the fluid can move freely and without borders or limits.

Anyway, in Hybrido simulations it is often necessary to enclose the fluid inside a container, for example if you want to create an ocean surface or any kind of water reservoir. When you choose “Closed Domain” RealFlow will add a couple of nodes to create a complete setup with a domain, an emitter including an attached emission object, and a surrounding container. Another element is a Null object, named “HY_Closed_Domain_Manipulator”. This node helps to save you time:

Instead of rescaling the container, the domain's projection plane, and the emitter object one by one individually, you just rescale the manipulator object and all nodes, listed before, will be modified at once.

Before the scene elements are created you can define their basic parameters:

 

Dimension

Here you simply specify the domain's X, Y, and Z dimensions in metres [m].

Type

Choose, whether you want to create a completely closed container, or a top-open object.

Water level

Enter the desired water depth in metres [m]. This parameter will affect the emitter object.