Procedural Meshing
Updated: 13 Dec 2024
Renders a procedural system as geometry.

Updated: 13 Dec 2024
Renders a procedural system as geometry.

Generates a surface from a procedural by first voxelising it, and then constructing a smoothed surface over the voxels. The surface produced is a triangle mesh which can be textured, deformed, can cast shadows, and can be used as a particle emitter among other things.
This node outputs the normal transformation and translation values, but it also outputs geometry which can be modified with Deformer nodes, or used as a mesh sources for nodes which accept mesh connections, such as the Field Mesh Emitter or the Procedural Mesh.
These properties control the 3D transforms of the node. Transforms will generally be inherited by child nodes, although they can be ignored through the Inherit Transform Channels attributes.
| Parameter | Details |
|---|---|
| Position X | The objects position along the local x-axis. |
| Position Y | The objects position along the local y-axis. |
| Position Z | The objects position along the local z-axis. |
| Rotation Heading | The objects rotation around the local y-axis. |
| Rotation Pitch | The objects rotation around the local x-axis. |
| Rotation Bank | The objects rotation around the local z-axis. |
| Scale X | The objects scale along the local x-axis. |
| Scale Y | The objects scale along the local y-axis. |
| Scale Z | The objects scale along the local z-axis. |
Control the inheritance of the transforms from the parent.
| Parameter | Details |
|---|---|
| Position | Toggle inheritance of the Position from the parent. |
| Rotation | Toggle inheritance of the Rotation from the parent. |
| Scale | Toggle inheritance of the Scale from the parent. |
| World Position Only | Inherit the world position from the parent only, rotation and scale will be ignored. Overrides above properties. |
| Inherit Time | Toggle inheritance of time from the parent. |
These properties control the core behaviours of the node.
| Parameter | Details |
|---|---|
| Grid Width | Width of the adaptive voxel grid. |
| Grid Height | Height of the adaptive voxel grid. |
| Grid Depth | Depth of the adaptive voxel grid. |
| Update Mode |
Set how the procedural system updates.
|
| Error Tolerance | If the procedural distance field has too much distortion then it may be necessary to raise the error tolerance. a higher error tolerance may reduce performance, so this is a trade-off. |
| Adaptive Subdivisions | Amount of subdivisions to apply to the mesh.Can be used to smooth out the mesh. |
| Smoothing Iterations | Iteratively smoothes the meshes vertices by the number of levels specified, averaging out all the vertices in the mesh and producing a smoother result. Smoothing is done before rendering. High values can impact performance greatly, and may not be temporally stable if the underlying mesh changes. |
| HQ Smoothing | When enabled, vertex positions will be projected back on to the procedural surface. this preserves sharp edges without increasing the voxel grid size. |
| Distance Field Normals | Vertex normals will be extracted from the procedural distance field. this can be more accurate, but slower. |
| Seal Boundaries | When a procedural intersects the bounding box, usually a hole is created. enabling this option will fill in the hole. |
| Generate Colours | Uses colours set in procedural nodes (such as 3d primitive) to colourise the generated vertices. this can reduce performance slightly. |
| Generate UVs | Generate texture coordinates at the generated vertices, for use with a material. this can reduce performance slightly. |
| Visible | Control whether the node is visible or not to the scene. |
| Seen By Rays | Allow the mesh to be seen by the raytracer. When set to 0, the mesh will still render in camera but will be ignored by any raytracing nodes. |
| Show Metrics | Displays information about the amount of mesh geometry being generated. |
These properties control how the surface of the generated mesh reacts to light in the scene. See Materials for a breakdown of all these properties individually.
| Name | Description | Typical Input |
|---|---|---|
| Procedural Root | Use a Procedural Root as an input, so the renderer is treated separately from the roots transforms. In this case, the renderer itself would be connected to the scene Root node. | Procedural Root |
| Render Transform | Takes the transformation of another node and applies it to the rendered mesh. | Null |
| Material | A material to apply to the rendered mesh | Materials |
| Bounding Box | The region in which the surface will be voxelised and generated | Bounding Box |
| Transform Modifiers | Apply the transforms of another node to this node. | Null |
| Target Node | Modifiy the rotations of the node to always direct the z axis towards the input. | Null |
| Local Transform Override | Apply the transforms of another node to this node, relative to its parent. | Null |