genproc: point instancer from curves#

Point Instancer From Curves

Installation#

To use this Node, you must enable wip.genproc.core in the Extension Manager.

Inputs#

Name

Type

Description

Default

curvesBundle

bundle

Bundle containing curves data

prototypesBundle

bundle

Bundle containing prototype data

instancingMode

int

0 = density, 1 = distance, 2 = end-to-end

0

samplingMode

int

0 = uniform, 1 = ramp

0

orientationMode

int

0 = prefer curve tangent, 1 = prefer up vector, 2 = ignore curve

0

propagateUp

bool

If true, up vectors of instances are transported along curves in a rotation-minimizing fashion. If false, up vectors of instances are independent of one another; each instance will ‘try’ (depending on the Orientation Mode) to align with either a global or per-curve up direction

True

usePerCurveUp

bool

If true, look for an attribute in the input curves bundle for a per-curve up vector for use in place of a global up for instance alignment.

False

curveUpAttrName

token

Name of attribute in input curves bundle containing per-curve up vectors

curveUp

rampSampleCount

int

Number of points to sample from curve ramp widget

50

rampSamplingPositions

float[]

Parametetric values from [0,1] at which sampling density can be specified

[]

rampSamplingValues

float[]

Sampling density on the curve. A value of 10 means that we should sample the curve with a step size of 1/10

[]

rampSamplingInterpolations

int[]

Interpolation method between keys. Linear is a creates a flat curve from point to point. Smooth creates an ease in or ease out curve from point to point.

[]

rampRPositions

float[]

Values from [0, 1] at which rotation blend values can be specified

[]

rampRValues

float[]

Blend values from [0, 1] to interpolate between the uniform rotation parameter and random rotations

[]

rampRInterpolations

int[]

Interpolation method between keys. Linear is a creates a flat curve from point to point. Smooth creates an ease in or ease out curve from point to point.

[]

rampSPositions

float[]

Values from [0, 1] at which scale blend values can be specified

[]

rampSValues

float[]

Blend values from [0, 1] to interpolate between the uniform scale parameter and random scales

[]

rampSInterpolations

int[]

Interpolation method between keys. Linear is a creates a flat curve from point to point. Smooth creates an ease in or ease out curve from point to point.

[]

rampTPositions

float[]

Values from [0, 1] at which translation blend values can be specified

[]

rampTValues

float[]

Blend values from [0, 1] to interpolate between the uniform translation parameter and random translations

[]

rampTInterpolations

int[]

Interpolation method between keys. Linear is a creates a flat curve from point to point. Smooth creates an ease in or ease out curve from point to point.

[]

rampObjIdxPositions

float[]

Values from [0, 1] at which object index values can be specified

[]

rampObjIdxValues

float[]

Object index values. Note that the continuous values of these keys will be rounded down to integer values when converted to object indices.

[]

rampObjIdxInterpolations

int[]

Interpolation method between keys. Linear is a creates a flat curve from point to point. Smooth creates an ease in or ease out curve from point to point.

[]

rampRandIdxPositions

float[]

Values from [0, 1] at which object index blend values can be specified

[]

rampRandIdxValues

float[]

Blend values from [0, 1] to specify the likelihood that an object index will be selected randomly rather than taken from the object index ramp

[]

rampRandIdxInterpolations

int[]

Interpolation method between keys. Linear is a creates a flat curve from point to point. Smooth creates an ease in or ease out curve from point to point.

[]

active

bool

Whether the node should run its compute

True

density

float

Constant number of samples to take along each segment of each curve

10.0

minimumEndToEndDistance

float

Minimum distance between instances when end-to-end instancing is used

10.0

instanceOnCurveEndpoint

bool

If true, a final instance will be placed at the end of the curve

True

offset

float[3]

Constant displacement along the axes of the curve’s local frame

[0, 0, 0]

offsetRandom

float[3]

Maximum random displacement along the axes of the curve’s local frame

[0, 0, 0]

offsetRandomTwoSided

bool

If true, randomized offsets will be positive or negative with magnitude bounded by ‘Offset Random.’ If false, the sign of randomized offset values will match that of ‘Offset Random.’

False

scale

float[3]

Constant scale factor

[1, 1, 1]

scaleRandom

float[3]

Maximum random scale

[1, 1, 1]

rotationOrder

int

euler angle rotation order

0

rotation

float[3]

Euler angle offset from curve frame

[0, 0, 0]

rotationRandom

float[3]

Maximum random euler angle offset from curve frame

[0, 0, 0]

objectPrototypeCount

int

Number of object prototypes in the output pointInstancer. Random object indices will not be greater than or equal to this number.

0

firstObjectIndex

int

Object index of first instance If negative, this value will be ignored and the instance index will be set as usual.

-1

lastObjectIndex

int

Object index of last instance If negative, this value will be ignored and the instance index will be set as usual.

-1

Outputs#

Name

Type

Description

Default

pointInstancerBundle

bundle

output bundle of pointInstancer data

reload

bool

Workaround option to force recomputation of output

False