Houdini 20.0 Nodes Geometry nodes

VDB from Particle Fluid geometry node

Generates a signed distance field (SDF) VDB volume representing the surface of a set of particles from a particle fluid simulation.

On this page
Since 13.0

This node replaces the Particle Fluid Surface node. This node is much faster, uses less memory, gives smoother (less lumpy) results, and has much better “sheeting” (narrow tendrils will appear as connected fluid, instead of a line of droplets).

This node outputs a Signed Distance Field (SDF) VDB the zero-level set of which represents the fluid surface. The output VDB can then be converted into a Polygon or PolySoup surface using the Convert VDB node. No points or primitives from the input will appear in the output.

Parameters

Limit Refinement Iterations

When the checkbox is on, the node will only refine the geometry the specified number of times. When off, the node uses as many iterations as it needs to achieve a certain quality. Set this parameter from 1 to 4 to trade speed for quality.

The number of iterations chosen by the node is always finite, and the time taken by each iteration drops quickly as the number increases. So, there is little benefit to setting an explicit limit beyond 3 or 4.

Half-Band Voxels

The width (in voxels) of the band around the generated surface on each side of the surface inside which the generated VDB stores detailed values of the output field.

Rebuild SDF

Converts the output to a standard signed distance field (SDF). If this option is off, the output will be a scalar field for which the zero level set represents the fluid surface and the signs assigned to voxels agree with those of a standard SDFs (negative inside the fluid and positive outside of it). However, it is not a proper distance field in that its non-zero levels do not necessarily represent regular offsets of its 0 level. For example, the 0.1 level surface may not uniformly lie at distance of 0.1 from the 0.0 level surface. Furthermore, the background values of the VDB on the two sides of the surface are -1 and +1. Having this option off may generate a slightly higher quality surface.

Output Name

The name for the generated field in the output.

Particles

Parameters on this tab control the output resolution, the sizing of the particles, and the extent of particle interaction.

Resample Input

Resample the particles using the parameters below in order to compensate for irregularities in distribution of particles. This can reduce the number of particles in over-sampled areas, giving better performance and preventing artifacts.

Particle Separation

The particle separation used in the simulation. This is used as a unit length for the following next three parameters.

Voxel Scale

The voxel side length to use for the generated VDB volume. This is a scale on the Particle separation length. For example, if Particle separation is 0.1 and Voxel size is 0.5, the side length of the voxels of the output field will be 0.05.

Influence Scale

The maximum distance at which particles interact. Small increases can give smoother results but increase the cooking time and memory usage greatly. This is a scale on the Particle separation length. For example, if Particle separation is 0.1 and Influence radius is 3, particles will interact if they are within 0.6 units of each other.

Droplet Scale

The approximate desired distance between the particles and the generated surface. This is a scale on the Particle separation length, and must be smaller than the Influence scale. It becomes a scale on the pscale attribute value (instead of Particle separation length) if pscale is present.

Note

This accurately determines the radius of a droplet formed by an isolated particle since in absence of interactions from other particles, the desired distance between a particle and the generated surface is realized exactly in the form of a sphere (droplet) centered at the particle.

You can use the pscale attribute to locally manipulate the distance of the surface to particles (pulling it closer or pushing it away). The pscale value replaces Particle Separation as the scale by which this parameter is multiplied to calculate the indented distance of each particle from the surface of the fluid.

You must ensure the Droplet Scale times pscale value of all particles is smaller than Influence Radius times Particle Separation.

Tiles

The Advanced tab provides control over tiling and memory management aspects of of the fluid surfacing algorithm.

Tile Size

The size of the cubic “tiles” used by the algorithm. These tiles are visualized in the viewport when the display flag on this node is on. Tiles can be processed in parallel, so if you have many CPUs you may want smaller tiles. There is however an overhead in distributing the work into tiles which increases with having more tiles. The amount of memory used by the node is related to tile size and not to the number of tiles. Larger tiles increase the amount of memory used by the node.

This value is a scale on the Influence Radius parameter on the Particles tab. So, if you keep the Influence Radius the same, doubling this value increases the memory usage 8 times. Similarly, halving the voxel size would also increase memory usage 8 times.

Tile Offset

The displacement of the origin of the tile array from the grid origin. Changing this parameter shifts the entire array of tiles by the specified amount (rounded to the nearest multiples of voxel size). Modifying this parameter can reduce the number of tiles which overlap the main body of the fluid and this can noticeably improve the performance of the node. For example, if the fluid simulation contains a shallow pool of water, it is a good idea to have this main pool (ignoring the splashes) covered by as few rows of tiles as possible.

Note

It is very important to have the Tile Offset set to a fixed value for the entire range of frames for which the fluid is being surfaced as this ensures frame-to-frame coherence between the generated surfaces.

Additional Padding

The amount of extra overlap between adjacent tiles. The larger the padding, the lower the risk of inconsistencies between tiles, but at the same time, the more the amount of work the node has to do per tile. Increasing this value can greatly increase the cooking time of the node. Increasing this beyond 3 generally has little to no benefit.

This value is a scale on the Influence radius parameter on the Particles tab.

Limit Physical Memory %

If turned on, the maximum percentage of the computer’s total memory to use for the node’s work buffer.

This does not affect the amount of memory used by the field created by the node.

Large Tile size and Additional padding values may make it impossible to fit within this restriction. In that case, the node will stop and display an error. If the amount of memory is too small to use all available CPUs, the node will display a warning.

Visualize

The choice of visualization of Tiles or Padded Tiles (or both) used for the breakdown of the surfacing job.

Note

You can press MMB on the node to see the number of CPUs it used.

Inputs

Particle Fluid Field

The particle geometry to generate a surface around. In general you will connect the particle field from a particle fluid simulation, however any set of points may be used as an input to this SOP.

See also

Geometry nodes