Houdini 21.0 Nodes Geometry nodes

Labs Biome Plant Scatter (Beta) 1.2 geometry node

Scatters plant species points across the surface of an input heightfield by matching input plant types with their preferred environmental conditions.

On this page
Since 20.5

This node scatters plant species points defined by multiple Labs Biome Plant Define SOPs chained together or a Labs Biome Plant Definitions File SOP that is set to create geometry from a plant definitions file. These points contain attributes denoting their ideal conditions and tolerance level for factors including temperature and precipitation. The second input is a heightfield with biome attributes including temperature and precipitation, and other environmental attributes such as soil. This second input expects a heightfield generated by a Labs Biome Attributes to Terrain SOP followed by a recommended Labs Biome Attributes Evolve SOP. This node inserts the plant and heightfield attributes into a viability function to determine the viability of a species in an area. The function produces a species viability heightfield layer per plant species and these layers control the scatter density of the plant species. After an initial plant scatter, plant species in close proximity to one another compete for resources, and the strongest survive while the weaker species are culled. The third input expects a heightfield mask or geometry to build a mask from. By default, this mask is subtracted from the soil mask and will exclude the scatter from those areas. The first output is a point cloud source for instancing and the second output is the heightfield that can optionally include all of the plant viability layers when Output Plant Viability Layers is enabled.

Parameters

Mode

Controls if terrain points are scattered on the input terrain or a test terrain, or alternatively, if a simple line-up of the plant inventory is displayed. Scattering on test terrain or displaying the plant inventory modes are used for experimenting with plant species and biomes without a terrain environment. Scattering on input terrain requires an input terrain while the other modes do not.

Scatter on Input Terrain: This mode scatters points onto the surface of the input heightfield based on the input heightfield layers: 'temperature', 'precipitation', and 'soil'.

Scatter on Test Terrain: This mode generates a test terrain with specified or existing biome attributes. Heightfield layers for 'temperature' and 'precipitation' are generated based on the Test Terrain parameters and 'soil' is filled with a value of 1.

Display Plant Inventory: This mode produces a line-up of each plant species’s mesh variants alongside their corresponding dead mesh variants.

Test Terrain

Size

Width and height of the test terrain heightfield, in meters.

Biome Attributes

Method for defining the test terrain biome attributes.

Specified: Biome attributes are manually set with Temperature and Precipitation parameters.

From Existing Biome: Biome attributes are read from an existing biome.

Gradient: Biome attributes are laid out with temperature increasing towards +X and precipitation increasing towards +Z.

Temperature

Test terrain is filled with this temperature value.

Precipitation

Test terrain is filled with this precipitation value.

Path to Biomes: #id: pathtobiomes Node path to the last Labs Biome Define SOP in a chain of nodes or a Biome Definitions File SOP set to read and create geometry. A list of biomes defined by this path will populate the Biome ordered menu.

Biome

The biome to read biome attributes from and apply to test terrain.

Temperature

Test terrain is filled with this temperature value.

Precipitation

Test terrain is filled with this precipitation value.

Plant Inventory

Spacing

The distance between plants.

Scatter: Post-processing

Scale Multiplier

Factor by which all plant species are scaled.

Density Multiplier

Factor by which the density of all plant species is scaled.

Age Jitter

Scale of the offset to slightly alter the plant ages. Ages are jittered by a value of -0.5 to 0.5 times this scale. Jittering the age will introduce chaos and break up the artificial smooth profile of a forest. Age is then clamped between 0 and 1.

Global Seed

The random number seed used to scatter points. This seed will randomize the mesh variants, pscale, point positions, and more.

Mesh Variant Seed

This seed will randomize the mesh variants without affecting the pscale or position of the points.

Enable Mask

Enables the masking of points by the third input. If Invert Mask is enabled, a heightfield mask and/or geometry will be subtracted from the soil mask to prevent plants from scattering in the masked area.

Invert Mask

Enable to invert the mask of input 3. If enabled, the red areas of the input mask will be subtracted from the scatter. This is enabled by default.

Scatter: Overlap

Keep Plants by

Method used to determine which intersecting plant is kept and which is culled.

Greatest Age: Method for keeping points with the greatest age.

Greatest Viability: Method for keeping points with the greatest viability.

Random: Method for keeping points randomly.

Tree Tolerance

The distance in meters that trees are allowed to overlap each other. If the overlap distance of two tree bounds radii is greater than this value, they are considered intersecting and one of the trees is removed from the scatter.

Shrub Tolerance

The distance in meters that shrubs are allowed to overlap each other. If the overlap distance of two shrub bounds radii is greater than this value, they are considered intersecting and one of the shrubs is removed from the scatter.

Scatter: Noise

The 'noise' point attribute can later be used to control material values per instance.

Noise Type

The type of noise to generate.

Element Size

Uniform scale of elements in the noise.

Offset

Offset within the evaluated noise field (added to each axis). If you have the general noise effect you want, but want to get a different set of values for a different look, try changing the offset.

Scatter: Culling

Enable Culling

Enables post-processing culling.

Cull Type

Method for culling.

Percentage to Keep: Method for culling by percentage.

Maximum Number: Method for culling by maximum number.

Maximum Number

Points exceeding this number are culled.

Percentage to Keep

Percentage of points that are not culled.

Scatter: Incomplete Age Coverage

Replace With

Geometry to reference if the current plant point’s age is not covered by the plant specie’s Normalized Age Range parameters defined by the Biome Plant Define SOP. Preview results with an Instance SOP.

No Geometry: Plant points are removed from the scatter.

Debug Spheres: The point’s instance attribute, Mesh Path, references a colored sphere. This geometry is useful for debugging.

Closest Age Mesh Variant: The point’s instance attribute, Mesh Path, references the mesh variant with the closest age range to the current plant point’s age.

Debug Sphere Color

A color value that is easily distinguishable from the color of plant mesh variants.

Debug Sphere Scale

The scale of the Incomplete Age Coverage debug sphere.

Scatter: Invalid Mesh Path

Replace With

Geometry to reference if the current plant point’s Mesh Variant is missing or invalid. Preview results with an Instance SOP.

No Geometry: Plant points are removed from the scatter.

Debug Spheres: The point’s instance attribute, Mesh Path, references a colored sphere. This geometry is useful for debugging.

Debug Sphere Color

A color value that is easily distinguishable from the color of plant mesh variants.

Debug Sphere Scale

The scale of the Invalid Mesh Path debug sphere.

Input: HeightField Layers

Temperature

The name of the 'temperature' heightfield layer.

Precipitation

The name of the 'precipitation' heightfield layer.

Soil

The name of the 'soil' heightfield layer.

Output: Detail Attributes

meshvariantsdetailarray

Output the Mesh Variants detail string array.

Mesh Variants

Name of the Mesh Variants detail string array. A list of unique strings that are the instance references. These references should point to files on disk or op: operator references. Only the mesh variants present in the scatter are included in the Mesh Variants array.

ueassetdetailarray

Output the Unreal Asset Paths detail string array.

Unreal Asset Paths

Name of the Unreal Asset Paths detail string array. A list of unique strings that are the unreal instance paths. These references should point to the asset’s reference.

Output: Point Attributes

Mesh Path

Name of the mesh path point attribute, also known as the instance attribute. outputname

Name

Name of the Name attribute.

outputunrealpath

Output the Unreal Asset Path point attribute.

Unreal Asset Path

Name of the Unreal Asset Path point attribute. outputmaterial

Material

Name of the Material point attribute.

outputage

Output the Age point attribute.

Age

Name of the Age point attribute.

outputviability

Output the Viability point attribute.

Viability

Name of the Viability point attribute.

Enable Noise

Output the Noise point attribute. This attribute is set by the Noise settings under the Scatter tab.

Noise

Name of the Noise point attribute. Enable Species ID

Species ID

Enable Variant ID

Variant ID

Enable Dead

Output the Dead point attribute. Dead is an integer attribute that is set to 1 when a dead mesh has been chosen and 0 when a live mesh has been chosen.

Dead

Name of the Dead point attribute.

Enable Plant ID

Output the Plant ID point attribute. Plant ID is an underscore separated id containing the speciesid, variantid, and dead attributes in that order.

Plant ID

Name of the Plant ID point attribute.

Enable Unique ID

Output the Unique ID point attribute. This attribute is unique per point.

Unique ID

Name of the Unique ID point attribute.

Enable Mesh ID

Output the Mesh ID integer piece attribute. Mesh ID is the enumeration of the Mesh Path attribute.

Mesh ID

Name of the Mesh ID integer piece attribute.

Enable Unreal Mesh ID

Output the Unreal Mesh ID integer piece attribute. Unreal Mesh ID is the enumeration of the Unreal Asset Path attribute. This is needed for the PCG Export SOP.

Unreal Mesh ID

Name of the Unreal Mesh ID integer piece attribute.

Output: Point Groups

Plant Points Group

Output Plant Points group.

Plant Points

Name of Plant Points group. This is a group of all the points of the first output.

Output: HeightField Layers

Output Plant Viability Layers

Output a plant viability heightfield layer per plant species with the second output.

Prefix

String added at the beginning of each plant viability heightfield layer name. Name = Prefix + Species ID Name.

Visualize: Points

Visualize Points

Visualizes the points colored by their attributes.

Visualize Spacing Radii

Visualizes the circles representing the bounds radii and trunk radii of the points. Visualize Variant ID

Visualizes the text marker for the 'variantid' of the points.

Color By

Attribute to color the points by.

Plant Species: Color by the Species ID Color defined by the Biome Plant Define SOP or assign random colors from the 'plant_name' attribute when Assign Random Colors is enabled.

Mesh Path: Color by the 'instancepath' attribute.

Viability: Color by the 'viability' attribute.

Age: Color by the 'age' attribute.

Assign Random Colors

Assign random colors from the 'plant_name' attribute.

Seed

Seed for the random colors.

Normalized Color Ramp

Control how colors map to attribute values. Colors on the left correspond to lower attribute values while colors on the right correspond to higher attribute values.

Visualize: HeightField Layers

Visualize Terrain

Visualizes the terrain. Note: If Mode is set to “Display Plant Inventory” there is no terrain to display.

Visualize Species Viability

Visualizes a Species Viability heightfield layer as a red mask. The more red, the more likely the plant species will be scattered in that area. Navigate to the Output tab and enable Output Plant Viability Layers to output these heightfield layers to the second output.

Species

The current plant species’s viability layer to visualize.

Locals

Labs Biome Recipe

Labs Biome Recipe (Beta) is a tool recipe embedded in Labs Biome Plant Scatter SOP to help users get started with the biome toolset. This tool recipe creates a node network that generates a single-biome, mountain environment and simple plant scatter. Labs Biome Recipe (Beta) not only helps save time setting up a biome pipeline but it also helps users learn how the nodes are wired together. Just replace the input terrain and plant models to customize the setup and make it your own with little effort. The recipe can be found in the tab menu under “Labs/World Building/Biome” with the rest of the biome tools.

See also

Geometry nodes