On this page |
Accurate velocities for moving collision objects are extremely important for fluid simulations in general, but particularly for FLIP. Incorrect collision velocities can lead to less dynamic splashes or fluid leaking through geometry.
Houdini’s SOP-based FLIP fluids handles object collision and interaction through the FLIP Collide SOP node. Collision objects can be static, moving and deforming. The FLIP Collide SOP node provides a fourth input (New Collision Geometry) for connecting geometry or volumes.
Solver boundary conditions are not relevant for collisions, for example when you pour water into a glass. Solver boundary conditions are only evaluated for fluids, interacting with the simulation domain. The domain is defined through the FLIP Container SOP node. The image below shows the original object, and the collision geometry with Particle Separation values of 0.1
and 0.01
.
Volume and surface collision ¶
There are two main collision methods in the FLIP Collide node: Volume Collide and Surface Collide. By default, both options are turned on. Volume Collide creates a volume from the input geometry. The quality and resolution of this volume is exclusively controlled through the FLIP Container SOP node’s Particle Separation and Grid Scale parameters. Smaller separation values, create more details, but also require more memory. Those scenes also take longer to simulate, because the parameter is also responsible for the number of fluid particles.
Surface Collide is a 1:1 representation of the input mesh and not available with volumes.
Note
Some collision methods require you to go to the solver’s Collision sub-tab. Under Collision Behavior you can find the Particle Collisions dropdown menu. The default choice is Move Outside Collision.
-
If there is at least one collision object with Surface Collide turned on, the solver’s Particle method (default option) is mandatory.
-
In many cases it makes sense to have both methods turned on (default option). This is also mandatory, when you merge open and closed 3D objects.
-
Volume Collide is suited for all solid 3D objects and volumes.
-
Surface Collide is the right choice with 2D objects such as grids.
To... | Do this |
---|---|
Show collision geometry |
|
Disable fluid-object collision globally |
|
Set the collision method for solid and closed 3D objects |
|
Set the collision method for 2D objects |
|
Set the collision method for merged 2D and 3D objects |
|
Use volumes as colliders |
|
Improve collision with low-resolution fluids |
|
Simulate fluid columns |
|
Use volumes as collision objects |
|
Leaking collision objects ¶
Leaking often occurs with objects not being closed completely and Houdini isn’t able to create a proper collision volume. Very small objects are also prone to leaking. If possible, consider increasing the object’s scale to make it watertight. Also try to close polygon holes.
In some cases, especially with thin collision objects, the FLIP Solver may not resolve the collision properly when simulating at relatively low resolutions. With very thin objects you may even need to create proxy collision geometry that generates a thicker Signed Distance Field (SDF). There are several ways to improve collision detection:
A common source for leaking are very fast particles or objects, although the object is big/thick enough and properly modeled. In those cases, the solver’s accuracy is insufficient. Go to the FLIP Solver SOP node’s Quality section and increase Global Substeps. Since substeps have strong influence on simulation times increase substeps only by 1
per test cycle. If the object is moving or deforming, increase the FLIP Collide node’s Velocity Substeps. Usually, Global Substeps and Velocity Substeps should match.
For low resolution simulations it can be useful to use both Volume Collide and Surface Collide for the same geometry. The volume collision will handle the bulk fluid, and the surface collision will avoid any particles leaking.
Make sure that surface colliders maintain topology during simulation, otherwise collision detection isn’t properly resolved in subframes. Use a Time Blend SOP and switch the playbar to sub-frames (see steps below) to verify the geometry interpolates properly.
-
Press Alt + ⇧ Shift + G to open the Global Animation Options.
-
For switching to sub-frames, turn off Integer Frame Values.
-
If necessary, adjust Step.
Also check, if you turned on the correct
-
Particle Collision method in the solver,
-
mode (volume/surface) in the FLIP Collide node.
Clipping collision objects ¶
For realistic fluid-object interactions, particles inside the collision objects are removed. This process requires that collision objects are closed and solid. Objects with Surface Collide won’t work.
-
Close polygon holes if possible.
-
Extrude surfaces to get a solid object.
-
Check, if the FLIP Collide node’s Volume Collide option is turned on.
-
Go to the FLIP Solver’s Collision sub-pane. Check, if Particle Collisions is set to Move Outside Collision.
The image below shows a water surface with closed and open collision geometry.
Solver collision settings ¶
The solver’s Collisions sub-pane can resolve many issues with collision and leaking objects. The Particle Collisions dropdown menu lets you choose from three options.
-
With None, collision detection is completely deactivated.
-
Move Outside Collision is the default and the fastest collision handling method. This option provides the smoothest splashes, however it is not as accurate with fast-moving collision geometry. It is also the only method that works with volumetric collision objects.
-
Particle is mandatory, if at least one FLIP Collide node has the Surface Collide option turned on.
Moving and deforming objects ¶
You can take the velocity of moving or deforming objects into account by turning on the FLIP Collide SOP’s Compute Velocity checkbox. With Velocity Scale it’s possible to control the intensity of the splashes. Higher values create stronger splashes and more impressive waves. If the splashes turn out too strong, decrease the value to tame the particles.