Builds an offset surface from geometry.
The IsoOffset operation builds an implicit function given the input geometry. It then uses the implicit function to create a shell at a fixed offset from the original surface.
The tetrahedral mesh mode may be used to create a uniformly sampled array of tetrahedrons for use in simulations.
The volume output modes allow the implicit function to be output directly as a volume primitive without further processing.
Parameters
| Output | Controls what is done with the implicit surface generated.
| ||||||||||||||||
| Tetra Type |
| ||||||||||||||||
| Mode | Governs the method that will be used to generate the signed distance field.
| ||||||||||||||||
| Name | The name primitive attribute will be set to this value. | ||||||||||||||||
| Uniform Sampling | It is often advantageous to make sure voxels in a volume are cubes. This option allows the resolution of the volume to be specified without having to worry about matching the size and resolution fields. This parameter controls which axis is divided into Uniform Sampling Divisions. | ||||||||||||||||
| Uniform Sampling Divs | The number of voxels to divide the Uniform Sampling axis into. The other axes will be divided into the number of cells that fit for this voxel size. | ||||||||||||||||
| Sampling Divs | When using non-uniform voxel cells, each dimensions resolution can be specified here. | ||||||||||||||||
| Div Size | The uniform size of the voxels, when specifying the voxel size directly. The given sized box will be filled by voxels of this size. | ||||||||||||||||
| Override Output Divs | The resolution of the output mesh or voxel array can be different from what the input was sampled at. | ||||||||||||||||
| Output Divs | The number of divisions to evaluate the field at. This can be set to a higher resolution than the field, in which case the field is linearly interpolated for the missing values. When outputing volumes, this is unused as they are generated at the sampling resolution. | ||||||||||||||||
| Override Bounds | The default bounding box is set to be slightly larger than the incoming geometry. If you want to do a large offset, or ensure that the polygonization is stable over changing input geometry, override the bounds to something else. If Force Bounds is on it is assumed that the geometry will fit entirely within these bounds. If a second input is specified, the bounding box of that input will be used rather than the bounds specified here. | ||||||||||||||||
| Pad Bounds | Slightly increase the specified bounds to ensure there is a layer of voxels outside of the specified boundary. This can ensure that there are proper outside voxels. | ||||||||||||||||
| Minimum Bound | The minimum clipping plane boundary for field evaluation and surface construction. | ||||||||||||||||
| Maximum Bound | The maximum clipping plane boundary for field evaluation and surface construction. | ||||||||||||||||
| Offset | The offset to build the iso surface on. The resulting surface will describe points at this distance from the original surface. | ||||||||||||||||
| Tolerance | The tolerance to use for building the SDF. This affects the ray intersection code. This tolerance is multiplied by the maximum bounding box size of the original geometry, so normally is independent of geometry scale. | ||||||||||||||||
| Laser Scan | The Laser Scan mode only applies to the Ray Intersect mode. In laser scan mode the SDF is build by sending rays along the primary axes. Only the closest and farthest intersection is used. The space between these two points is classified as inside, and the rest outside. The laser scan mode will work even with geometry which has poorly defined normals, self intersects, or isn’t fully watertight. The disadvantage is that interior features can’t be represented as they aren’t detected. When laser scanning is turned off, the SDF is still built by sending rays along the primary axes. However, all intersections are found. Each pair of intersections is tested to see if the segment is inside or outside. This relies on the normal of the geometry being well defined (ie: manifold, no self intersections), and the geometry being watertight. However, complicated shapes with holes can be accurately represented. | ||||||||||||||||
| Fix Signs | Even with the best made geometry, numerical imprecision can result in incorrect sign choices. This option will cause the SDF to be post-processed to look for inconsistent signs. These are then made consistent, usually plugging leaks and filling holes. This takes time, however, so can be turned off in cases where the SDF is known to generate without problems. Note Due to the nature of Fix Signs it also rounds sharp features in the SDF as they may be considered inconsistent signs. | ||||||||||||||||
| Force Bounds | The Fix Signs method alone will smooth out, and usually eliminate, sign inversions. However, it is possible for regions of wrong-sign to become stabilized at the boundary of the SDF. This option will force all voxels on the boundary to be marked as exterior. The Fix Signs will be much less likely to stabilize incorrectly then. | ||||||||||||||||
| Invert Sign | If one wants a hollow box, one method is to build one box inside the other and not use Laser Scanning. A more robust method is to just specify the inner box and use sign inversion. This treats everything outside of the box as inside, allowing the more robust Laser Scanning method to be used. | ||||||||||||||||
| Num Neighbour | The Point Cloud mode finds this number of nearest points and uses them to determine the local surface properties. A higher number of neighbor will smooth out local variations and create a smoother field. | ||||||||||||||||
| Sign Sweep Threshold | After the fix signs process is complete there can still be inconsistent areas in the SDF. Large blocks can become stabilized and stick out of the SDF. A second sign sweep pass can be performed to try to eliminate these blocks. The sign sweep threshold governs how big of a jump has to occur for a sign transition to be considered inconsistent. If the values of the sdf change by more than this threshold times the width of the cell, it is considered an invalid sign transition. The original geometry is then ray intersected to determine inside/outside and the result used to determine which sign is correct. The correct sign is then propagated forward through the model. | ||||||||||||||||
| Max Sign Sweep Count | The sign sweeps are repeated until no signs are flipped (ie, all transitions are within the threshold) or this maximum is reached. Too low of a sign sweep threshold may prevent the process from converging. Otherwise, it tends to converge very quickly. | ||||||||||||||||
| File Mode | The IsoOffset SOP can be used to load and save SDFs from disk rather than always having to recalculate them. The File Mode determines what, if any, disk access occurs.
| ||||||||||||||||
| File Name | The name of the file to save the SDF representation to. If the extension is .simdata, it will be saved in a format readable by the File DOP. If it is saved in .sdf, it will be saved in the .sdf format. Behavior with other extensions is undefined. |
Inputs
| Source | The geometry to convert into an SDF and then rebuild. |
| Reference Bounds | The geometry to use for the bounding box if Override Bounds is specified. |