Skip to content

Domain Object Settings

Ryan Guy edited this page Jun 14, 2019 · 30 revisions

This page documents settings for the domain object. The domain object should be created from a cube object and must be aligned to the Blender x/y/z axis'. There can only be one domain object in a single Blend file.

Panels

Simulation Settings Adjust the domain resolution and frame rate, and begin running a fluid simulation.
Cache Settings Set and manage the simulation cache directory.
Display Settings Adjust how the fluid and whitewater will be displayed in the viewport and during a render.
Surface Settings Configure mesh generation settings for the fluid surface.
Whitewater Settings Enable and configure the whitewater solver.
World Settings Adjust world size, gravity, and viscosity settings.
Material Settings Apply Blender materials to the fluid surface and whitewater particles
Advanced Settings Configure frame substeps, stability, multithreading, performance, and optimization settings.
Debug Settings Tools for debugging the domain grid, fluid particles, and solid obstacles.
Stats Settings View simulation, timing, and mesh statistics.

Cache Meshes

The fluid surface and whitewater meshes are loaded into Blender from the simulation cache and are stored into following child objects of the domain:

fluid_surface Triangle meshes representing the fluid surface will be stored in this object.
whitewater_foam Vertex only meshes representing the whitewater foam particles will be stored in this object.
whitewater_bubble Vertex only meshes representing the whitewater bubble particles will be stored in this object.
whitewater_spray Vertex only meshes representing the whitewater spray particles will be stored in this object.

Notes:

  • The whitewater_foam, whitewater_bubble, and whitewater_spray objects will only be present if the whitewater simulation feature is enabled. See Domain Whitewater Settings
  • To keep a persistent copy of a loaded frame mesh in your .blend file, you may simply copy and paste (CTRL+C, CTRL+V) the loaded mesh to create a separate Blender object. This can be useful for still rendering and for editing a single mesh that won't be reloaded from the simulation cache.

I am new to FLIP Fluids or fluid simulation, how do I start learning what all of these settings do?

We suggest starting with small simple experiments and not to get too ambitious with your first project. You might have the urge to recreate that scene from Pirates of the Caribbean: Dead Man's Chest where there is a ship rising out of the water and an animated octopus with a full crew of monsters and also the ropes need to splash the water too and it's all in an infinite ocean and it's going to be great, but we suggest scaling back and learning the basics. Learning a new tool can take a bit of time and jumping into a large project right away can lead to frustration.

To learn what a setting does, start by creating a basic scene. Maybe just a ball of fluid dropping, or an inflow pouring into a cube. Read along with the documentation to get an idea of what the parameter does and try only adjusting a single parameter at a time to test how it works. Lowering the resolution to speed up simulation will help you test and compare different parameter values quickly.

In addition to learning through experimentation and documentation, you can check out our Video Tutorial Series and Learning Resources page.

But there are so many domain settings! Which ones should I use?

The FLIP Fluids addon contains a lot of different settings to customize how the fluid looks and behaves. Many of the settings are for specific use cases and do not need to be changed for most scenarios and effects. The default values are set up so that they work well with a domain that is roughly the width of four Blender units or more. For many simulation setups, you'll not need to change very many settings outside the default values.

With all of these settings, the UI can be intimidating to a new user of the addon. For beginners, we suggest enabling the Beginner Friendly Mode in the addon preferences. This option will hide all but the most basic and commonly used settings.

But what settings do you usually change, RLGUY?

I mainly stick to the defaults, but there are some settings I often change

  • I increase domain resolution to increase simulation and physics quality. This will be different for every scene, but I usually do a final simulation between 250 to 500 resolution.
  • I often simulate a higher framerate of 50 or 60 fps.
  • I almost always set the mesh subdivision value to 1 for a final simulation Surface Panel. This generates a higher quality mesh and will take some extra time to compute, but I think the results are worth it. While testing a scene, I will often leave this value at 0 to speed up my workflow. I will usually also add a smooth modifier to the fluid_surface object to create a smoother surface.
  • If I have whitewater enabled, I will usually only ever change the wavecrest/turbulence emission rates to increase/decrease amount of whitewater Whitewater Panel. These are usually set to the same value. For a high quality ocean simulation, I usually try to generate enough whitewater so that there is around 4 to 7 million particles. You can see the number of particles in the Stats Panel under the frame info tab.

What settings need to be set before baking?

In general, all panels except the Display Panel and Material Panel need to be set before baking. The display and material panel all contain settings for viewport display and render setup which can be changed after baking a simulation. The exception is the Debug Panel which contains a mixture of simulation and display settings.

If you are unclear whether a setting must be set before baking, the top of the documentation for each panel will state which parameters must be set before baking.

How large should I make my domain object?

Ideally, the domain should be as small as possible. The domain should fit tightly around the fluid effect that you are trying to achieve. A tight fitting domain maximizes performance.

Why should I make my domain smaller? The simulator makes calculations over the entire domain/grid volume. If there is a lot of empty space in the domain, this can lead to more calculations and longer simulation times.

A smaller domain will also concentrate the grid resolution. A smaller domain at the same resolution will have smaller grid cells. This can help obstacles show up better on the grid. This will also increase grid cell coverage for fluid generating objects, leading to larger amounts of fluid that can help produce high quality effects. See the first topic in our '10 Tips' article/video to learn more about the simulation grid and how to visualize and debug the grid.

Tips on reducing domain size

  • Is your fluid never going to reach the top of your domain? Reduce empty space by lowering the domain ceiling.
  • Will splashes not reach the sides of your domain? Consider closing in the sides of your domain to reduce the empty space.
  • Are you beginning your simulation by dropping fluid from a large height? If the motion of the fall is predictable, consider animating the fall instead and beginning the simulation right before the fluid hits the ground. You may be able to lower the ceiling if you take this route, and you will avoid having to calculate the simulation frames during the fall. Make sure to emit the fluid at a speed downwards as if it were falling.
  • Are you simulating a deep ocean or pool of liquid? Think about whether you can get away with simulating a more shallow body of water. Will there be motion deep under the water that will affect the surface? Will you be able to see the bottom of the liquid in the render? If not, consider raising the domain floor and simulating a thinner layer of water. This will also reduce the amount of fluid that needs to be simulated which will speed up baking times.
  • Do you need to resize your domain, but don't want to change the grid cell size so that the simulation maintains a constant level of detail? Enable the Lock Cell Size before resizing your domain. When enabled, this option will automatically update the simulation resolution setting so that the grid cell size is the same before and after resizing.
Clone this wiki locally