GeoPointsToMesh

The GeoPointsToMesh node (NukeX only) uses geometry normals to generate a mesh from a point cloud using Poisson Surface Reconstruction.

Note:  Based on the SGP 2006 paper, Poisson Surface Reconstruction by Michael Kazhdan, Matthew Bolitho, and Hugues Hoppe. The original source code and paper can be found at https://www.cs.jhu.edu/~misha/Code/PoissonRecon

Tip:  GeoPointsToMesh's classic 3D system equivalent is the PoissonMesh node.

Inputs and Controls

Connection Type

Connection Name

Function

Input

unnamed

The previous stage in the scene you want to affect.

Control (UI)

Knob (Scripting)

Default Value

Function

GeoPointsToMesh

Path

prim_path

none

The root path of the new object. Path defaults a prim path variable {parent}/{nodename} which is equal to the node name, such as GeoPointsToMesh1 or GeoPointsToMesh5.

Parent Type

parent_type

Xform

Sets the type of prim to create if there are missing ancestors in the path.

Note:  Setting the Parent Type to None may cause some referenced objects to behave as if they don't exist.

Mask

mask_patterns

none

Specifies the mask pattern to match the prim names from which the mesh is created. You can use standard glob-style variables, such as /*, to create masks or use individual prim names separated by spaces. For example, /GeoCube1 /GeoCard3 applies the transform to only those prims.

Tip:  You can also use the cog menu, the Viewer picker, or drag and drop paths from the Scene Graph to create masks.

Use Selection

use_selection

on

When enabled, selection flags from GeoSelect nodes further up the tree are used to create the mesh.

Filtering

use_filtering

on

When enabled, filter the new mesh so that only faces with normals similar to those of the input are created.

Depth

depth

8

Sets the maximum depth of the tree that is used for surface reconstruction. The Depth value must be an integer with a maximum value of 10, because each increment increases the solver's potential memory usage by 8 times, so keep it as low as possible.

You can also think of it as the density of the voxels used by the solver. Running at depth d corresponds to solving on a voxel grid whose resolution is no larger than 2^d x 2^d x 2^d.

Note:  The reconstructor adapts the octree to the sampling density, so the specified reconstruction depth is only an upper bound.

Scale

scale

1.25

Specifies the ratio between the diameter of the cube used for reconstruction and the diameter of the samples' bounding cube.

Solver Divide

solver_divide

8

Specifies the depth at which a block Gauss-Seidel solver is used to solve the Laplacian equation. Using this parameter helps reduce the memory overhead at the cost of a small increase in reconstruction time.

Tip:  We found that for reconstructions of Depth >= 9, a Solver Divide of 7 or 8 can greatly reduce memory usage.

Iso Divide

iso_divide

8

Specifies the depth at which a block iso-surface extractor is used to extract the iso-surface. Iso Divide helps reduce the memory overhead at the cost of a small increase in extraction time.

Tip:  We found that for reconstructions of Depth >= 9, an Iso Divide of 7 or 8 can greatly reduce memory usage.

Samples Per Node

samples_per_node

1

Specifies the minimum number of sample points that fall within an octree node as the octree construction is adapted to sampling density.

For noise-free samples, use small values in the range 1.0 - 5.0. For more noisy samples, larger values in the range 15.0 - 20.0 may provide a smoother, noise-reduced reconstruction.

Confidence

confidence

off

When enabled, the reconstructor uses the size of the normals as confidence information.

When disabled, all normals are normalized to have a unit-length prior to reconstruction.