Skip to content

Scene Troubleshooting

Ryan Guy edited this page May 20, 2024 · 69 revisions

This document will detail common scene and simulation problems and how they can be resolved. Related information may also be found in this documentation page: Frequently Asked Questions.


Simulation baking is taking too long to compute!

See: Performance Notes and Tips > Simulation Optimization Tips.


Low CPU usage

Refer to this topic on CPU usage and performance information: Performance Notes and Tips > Performance FAQ


Render crashes or incorrect frame renders

Symptoms

  • Crashes before or after a frame renders
  • Incorrect object transforms (location/rotation/scale)
  • Very large whitewater particles (icospheres)
  • Rendering artifacts, animation flickering, incorrect shading

These issues can be caused by instability handling large meshes in the 3D viewport. At the moment the cause is understood to be a deep design issue in Blender. For complete render stability, rendering from the command line may be necessary as command line rendering is the most stable method of rendering in Blender. See this topic for more information: Why render from the command line?

The FLIP Fluids sidebar menu contains helpful tools to automatically launch a command line render with the press of a button:

image


Thin obstacles, leaking fluid

Fluid leaking through thin obstacles is a common issue with FLIP simulations. The simulator runs on a grid where the domain resolution controls how the domain box is split into a grid of voxels. Obstacles are handled by converting their geometry to a volume on the grid. If the obstacle is too thin, there may not be enough voxel coverage and the smaller details of the obstacle may not show up effectively on the grid. This can cause fluid to leak through the obstacle.

In most cases, the thinnest or smallest details of the obstacle should be at least 1 voxel thick in order to be resolved on the grid, but a thickness of at least 2 voxels is best to be fully resolved in all cases (Related topic: What is the domain simulation grid?).

image
Visualization of how an obstacle with thin walls is converted into a volume on a grid. On the left, a low resolution results in an incomplete volume due to low voxel coverage. On the right, a higher resolution results in a fully resolved volume.

There are two solutions for this type issue:

  1. Increase domain resolution (Simulation Panel) - A domain with a higher resolution will help the obstacle show up better on the simulation grid due to increased voxel coverage, but this solution will take longer to simulate.
  2. Increase obstacle thickness - An obstacle with thicker walls will show up better on the simulation grid at lower resolutions due to increased voxel coverage. When possible, this is the preferred solution as it does not add extra time to simulate. Tip: Use a thick object for simulation and the original thin object for rendering.

Related Resources:

  • For the obstacle to work correctly within the simulator, the object geometry must be Manifold.
  • See the first tip in our 10 Tips to Improve Your FLIP Fluids Workflow in Blender article/video for tips on visualizing how the obstacle is being treated by the simulator and how to debug issues with obstacle objects.
  • Depending on your simulation scenario, you may be able to avoid all issues related to thin obstacle objects using the Inverse Obstacle Workflow.

Thick obstacles, leaking fluid, unexpected behaviour

Make sure that your object mesh is Manifold.

See the first tip in our 10 Tips to Improve Your FLIP Fluids Workflow in Blender article/video for tips to debug issues with obstacle objects.


Large domain with a high resolution takes a long time to bake

Consider making your domain smaller to fit tightly around your fluid effect. See this topic on how large your domain should be.


Animated obstacle is static when running the simulation

If your object has animation more complex than keyframed location/rotation/scale, you will need to enable the Export Animated Mesh option (Obstacle Settings).


Simulation not generating enough whitewater (foam/bubble/spray)

  1. Increase domain resolution (Simulation Panel) - In general, higher resolution simulations will produce higher detail and larger quantities of whitewater
  2. Increase Wavecrest Emission Rate (Whitewater Panel) - This will increase the amount of whitewater at wavecrests and will generally produce more foam particles. Try values in the range of 100 - 1000.
  3. Increase Turbulence Emission Rate (Whitewater Panel) - This will increase the amount of whitewater in areas of high turbulence and will generally produce more bubble particles. Note that bubble particles rise to the surface and become foam, so this will also increase the amount of foam over time. Try values in the range of 100 - 1000.
  4. Lower Min/Max Energy Speed (Whitewater Panel) - These are the minimum and maximum speeds of the fluid (in m/s) that will trigger whitewater generation. Set these to values appropriate to your domain size. By default, one Blender unit is equal to one meter. Note that large domains will generally have higher speed fluid and smaller domains will generally have lower speed fluid.

Whitewater particles are too large/small when rendered

Adjust the whitewater particle scale in the Domain Display Settings.


Inflow will not fill up a tank when submerged

See this document for how to use the Inflow Constrain Fluid Velocity setting to fill up a tank: Creating a submerged pipe to fill a tank.


Small inflow not emitting fluid (low resolution simulation)

If the domain resolution is low and the inflow mesh is small/narrow, fluid may not be emitted when baking the simulation. This is because inflow calculations are run on a grid where the domain resolution defines how detailed the grid is (What is the simulation grid?). If the domain resolution is too low, then calculations might not show up effectively on the grid and the inflow will not emit fluid. The solution is to either increase the size of the inflow mesh or increase the the simulation resolution.

The inflow thickness/size should be at least one voxel large to begin emitting fluid. Tip: You can visualize the domain grid by enabling the Display Grid setting in the Debug Panel.

Video guide (timestamp 9:10)


Mesh banding artifacts against curved obstacles

The mesh generator uses a grid to convert particles to a triangle mesh. When thin layers of fluid are against an obstacle, the particles may not show up well on the meshing grid. Some fixes for this include:

  1. Increase surface subdivision level (Surface Panel) - This will create a finer mesh grid and generate a higher quality fluid mesh. This will also take more time to compute but the result is often worth the extra time.
  2. Increase particle scale (Surface Panel) - This will increase particle size when meshing. The particles will show up better on the meshing grid. This does not take much more time to compute, but your fluid surface may end up looking 'blobby'. Try values in the range of 1.30 - 1.50.

Fluid behaviour changes when changing Frame Rate, Speed, or Substeps

The simulation Frame Rate, Speed or Timescale, and Substeps are values that affect how often the simulator performs physics calculations. Changes in these values will affect the accuracy of the simulation, which can result in different simulation results between values.

The following changes will result in more frequent calculations, which will increase the accuracy of the simulation:

  • Increasing Frame Rate
  • Decreasing Speed
  • Increasing Substeps

For more information, see the topic below, Fluid behaviour changes when increasing resolution.

Fluid behaviour changes when increasing resolution

Do your simulation results drastically change after increasing resolution? Unfortunately, this is caused by the nature of how fluid simulations (and many other types of simulations) are calculated. Increasing the accuracy of a simulation can affect the outcome, so this is something to keep in mind when working with simulations.

Resolution is not the only factor that affects the accuracy of the simulation. The simulation frame rate, speed, and substeps (What are substeps?) which are settings that change how often the simulation performs simulation calculations will also affect accuracy.

Increasing resolution increases the level of physics detail and accuracy, and as accuracy is increased in the simulation, you may find that new splashes form, or that the improved physics detail alters the trajectory of a splash. How drastically a simulation changes can depend on what kind of effect your are simulating. In general, simulations with large thin splashes will change more drastically compared to simulations that involve the motion of large volumes of fluid.

It is a good workflow to mix in a few medium resolution tests to make sure your simulation is behaving to your liking before simulating the final result. Keep in mind that just doubling the resolution of a simulation results in over 8x the amount of calculations, which increases simulation accuracy by quite a bit. Running a very low resolution simulation as a preview, then going straight to a final high resolution quality simulation can leave you wondering why the simulation has changed so much.

Related topic: Working with fluid simulations can require some iteration and testing. Check out these tips on how to optimize your simulation setup so you can iterate on your effects quickly.

Side effects of changing simulation accuracy

Changes in simulation accuracy or changes in the frequency of simulation calculations can cause side effects in other simulation settings:


Fast moving fluid disappears from simulation

When fluid is moving quickly across the domain, the simulator may need to remove fluid particles from the domain in order to keep the simulation stable. If fluid is moving very quickly, such as from a high speed inflow, it is possible the the simulator may be required to remove all fluid particles in order to keep a stable simulation.

The fix for this issue is to allow the simulator to take more frame substeps in order to keep the simulation stable and to prevent loss of quick moving fluid. This can be done by increasing the Max Frame Substeps value in the Advanced Panel. Try setting this to a high value such as 50. The simulator will only take as many substeps as it needs to keep the simulator stable, so setting this to a higher value will not increase baking time more than is necessary.

Explanation:* In order to keep the fluid simulation stable, the simulator limits the maximum distance a fluid particle can travel in a single substep. A particle is limited to only travelling a certain number of voxels (CFL Condition Number) in a substep. If a particle is moving quickly, the simulator will take additional substeps in a frame to make sure a particle does not exceed the voxel distance limit. The Max Frame Substeps value limits the total number of substeps the simulator is allowed to take per frame. If particles are moving at a speed that cannot be resolved within the maximum number of substeps, the particles will be removed. Since this 'speed limit' is related to the number of voxels, the speed will be related to the grid resolution and this issue will become more prevalent in higher resolution simulations. Note that if using a a small domain or world size will also make this issue more prevalent since in general, fluid will move faster across a small domain than a large domain.

Related topic: What are substeps, and how do the min, max, and CFL parameters relate to each other?


Volume Loss - Fluid amount shrinking

Volume loss is a common issue in FLIP-based simulation systems. See this topic for more information and tips to prevent this type of issue: Limitations of the FLIP Fluids Addon: Volume and Mass Preservation.


Volume Loss - Fluid amount shrinking while liquid is settling

Does your liquid appear to lose volume when the liquid motion is calm or settling? For example, is the water level in a container lowering after an inflow stops adding liquid?

This type of issue may be caused by a side effect of how the simulator computes how many substeps to run per frame (Related topic: What are substeps?). By default, the simulator will tend to run a lower number of substeps when there is a low amount of motion in the liquid, such as when the liquid is calm or settling. This can lower the level of accuracy of the physics calculations, which can result in volume loss.

The fix for this type of issue is to increase the Domain > Advanced > Min Substeps value. This will force the simulator to run more substeps and produce a more accurate simulation. Tip: Running more substeps will require longer simulation times, so you may want to keyframe the Min Substeps value higher at the point where the liquid begins settling.

settling_water_volume_loss_example.mp4

How many Min Substeps should I use? This will depend on the situation, but a general guideline is to take a look at the Domain > Stats > Frame Info panel and check how many substeps the simulator is typically running during a frame with high motion. The Min Substeps value should be set to this number or higher.

image

For more information on volume loss, refer to this topic: Limitations of the FLIP Fluids Addon: Volume and Mass Preservation.


Difficulty achieving small scale fluid effects with small World Size

See our tips on simulating small scale fluid effect.


Simulation meshes are not appearing in the viewport and/or render

See these steps for troubleshooting this issue:

1. Check that the viewport/render display modes are set correctly in the FLIP Fluid Display Settings panel:

display_settings_modes

2. Check that FLIP Fluid Domain is enabled for the viewport/render:

domain_display_enabled

3. Check that FLIP Fluid Meshes are enabled in the outliner for viewport/render:

outliner_display_settings

4. Verify that simulation geometry has been generated in the current frame by checking if there is mesh data in the FLIP Fluid Stats panel:

stats_panel_geometry

If there is no geometry generated when there should be, there may be issues unrelated to rendering. If you are still experiencing issues, feel free to contact us at support@flipfluids.com for Scene Troubleshooting Help.

5. Test playback within a factory clean Blender environment:

If the above steps do not show issue and playback within the viewport is still not working as expected, this could indicate a problem contained within the Blender userdata. In this case, playback should be tested within a factory clean environment to help isolate the issue. This test involves temporarily renaming the Blender userdata folder. More information and a guide on this test can be found here Create a Clean Installation of Blender.

If viewport playback is still not working correctly, this could indicate an unknown issue. If you are still experiencing issues, feel free to contact us at support@flipfluids.com for Scene Troubleshooting Help.


Simulation does not render with motion blur

Setting up motion blur rendering is a bit more involved than just enabling motion blur in the render settings. The FLIP Fluids addon contains tools to help you automatically set up motion blur rendering and for starting a stable motion blur render.

See this topic for how to quickly set up your simulation for motion blur rendering: Domain Attribute and Data Settings > Motion Blur Rendering: Automatic Setup.


Export to Alembic cache is not exporting animated meshes

Short answers:

  • Fluid surface and whitewater meshes must contain a modifier for Blender recognize these objects as animated meshes for export.
  • In Blender 2.8x or later, the Blender interface must be locked during export to prevent crashes (Blender > Render > Lock Interface).

For full details, see this documentation topic: Alembic Export Support.

Clone this wiki locally