public class SoInstanceParameter extends SoVertexShaderParameterBufferObject
SoBufferObject
. It is used with the SoMultipleInstance
node.
Some predefined parameter names can be used for common instance parameters like position, rotation and scale factor. Parameter objects with these names are automatically managed and are recognized and used by the default shaders. Applications can define additional parameter objects to be used by custom shaders.
See the base classes SoShaderParameter
, SoVertexShaderParameter
and SoVertexShaderParameterBufferObject
for more details.
Note: Unlike SoVertexShaderParameter
, instances of this node must be added to the
parameters field of an SoMultipleInstance
node, not directly in the scene graph.
File format/default:
InstanceParameter {
name | "" |
identifier | 0 |
value | NULL |
components | 4 |
type | SbDataType.FLOAT |
stride | 0 |
shouldBeNormalized | false |
divisor | 1 |
See also:
SoVertexShaderParameter
, SoVertexShaderParameterBufferObject
, SoMultipleInstance
Modifier and Type | Class and Description |
---|---|
static class |
SoInstanceParameter.PredefinedParameters
List of predefined per-instance attribute names.
|
SoNode.RenderModes
Inventor.ConstructorCommand
Modifier and Type | Field and Description |
---|---|
SoSFUInt32 |
divisor
This field modifies the rate at which values advance during multiple instance rendering.
|
components, offset, shouldBeNormalized, stride, type, value
identifier, name
VERBOSE_LEVEL, ZeroHandle
Constructor and Description |
---|
SoInstanceParameter()
Constructor.
|
Modifier and Type | Method and Description |
---|---|
static SoInstanceParameter |
createPredefinedParameter(SoInstanceParameter.PredefinedParameters paramKey,
SoBufferObject values)
Calls createPredefinedParameter(paramKey, values, (int)1).
|
static SoInstanceParameter |
createPredefinedParameter(SoInstanceParameter.PredefinedParameters paramKey,
SoBufferObject values,
int divisor)
Creates an instance parameter object for one of the predefined attribute names.
|
static java.lang.String |
getPredefinedParameterName(SoInstanceParameter.PredefinedParameters paramKey)
Returns the predefined instance parameter name for the specified paramKey.
|
void |
setPredefinedParameterName(SoInstanceParameter.PredefinedParameters paramKey)
Sets the
name field to the string corresponding to the given paramKey. |
affectsState, callback, copy, copy, distribute, doAction, getAlternateRep, getBoundingBox, getByName, getMatrix, getPrimitiveCount, getRenderEngineMode, getRenderUnitID, GLRender, GLRenderBelowPath, GLRenderInPath, GLRenderOffPath, grabEventsCleanup, grabEventsSetup, handleEvent, isBoundingBoxIgnoring, isOverride, pick, rayPick, search, setOverride, touch, write
copyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaults
dispose, getName, isDisposable, isSynchronizable, setName, setSynchronizable
getNativeResourceHandle
public final SoSFUInt32 divisor
public static SoInstanceParameter createPredefinedParameter(SoInstanceParameter.PredefinedParameters paramKey, SoBufferObject values)
public void setPredefinedParameterName(SoInstanceParameter.PredefinedParameters paramKey)
name
field to the string corresponding to the given paramKey.public static java.lang.String getPredefinedParameterName(SoInstanceParameter.PredefinedParameters paramKey)
public static SoInstanceParameter createPredefinedParameter(SoInstanceParameter.PredefinedParameters paramKey, SoBufferObject values, int divisor)
SoBufferObject
. The SoBufferObject
is expected to contain translations encoded as 3 float values, e.g. array of SbVec3f
. The buffer size must be at least (numInstances/divisor) * 3 * sizeof(float). The divisor parameter indicates by how many instances a translation value is shared.
Example :
paramKey = ROTATION:
Sets the rotation per instance parameter values using the specified SoBufferObject
. The SoBufferObject
is expected to contain rotations encoded as 4 float values, e.g. array of SbRotation
. The buffer size must be at least (numInstances/divisor) * 4 * sizeof(float). The divisor parameter indicates by how many instances a rotation value is shared.
paramKey = SCALE:
Sets the scaling per instance parameter values using the specified SoBufferObject
. The SoBufferObject
is expected to contain scaling factor encoded as 3 float values, e.g. array of SbVec3f
. The buffer size must be at least (numInstances/divisor) * 3 * sizeof(float). The divisor parameter indicates by how many instances a scale value is shared.
paramKey = COLOR:
Sets the color per instance parameter values using the specified SoBufferObject
. The SoBufferObject
is expected to contain colors encoded as 3 float values, e.g. array of SbColor
. The buffer size must be at least (numInstances/divisor) * 3 * sizeof(float). The divisor parameter indicates by how many instances a color value is shared.
paramKey = TRANSPARENCY:
Sets the transparency per instance parameter values using the specified SoBufferObject
. The SoBufferObject
is expected to contain colors encoded as 1 float value, e.g. array of float. The buffer size must be at least (numInstances/divisor) * sizeof(float). The divisor parameter indicates by how many instances a transparency value is shared.
paramKey = VISIBILITY:
Sets the visibility per instance parameter values using the specified SoBufferObject
. The SoBufferObject
is expected to contain visibility value encoded as an int32_t value. The buffer size must be at least (numInstances/divisor) * sizeof(int32_t). The divisor parameter indicates by how many instances a visibility value is shared.
Generated on July 31, 2019, Copyright © Thermo Fisher Scientific. All rights reserved. http://www.openinventor.com