SoVertexProperty¶
-
InventorModule
¶ genre InventorNodesAutomatic
author Silicon Graphics Inc
package MeVisLab/Standard
definition inventor.def
Purpose¶
The property node SoVertexProperty
may be used to efficiently specify coordinates, normals, texture coordinates, colors, transparency values, material binding, and normal binding for vertex-based shapes, such as IndexedShapes or NonIndexedShapes. A SoVertexProperty
node can be used as a child of a group node in a scene graph, in which case the properties it specifies are inherited by subsequent shape nodes in the graph. It can also be directly referenced as the VertexProperty SoSFField of a vertex-based shape, bypassing scene graph inheritance.
When directly referenced by a VertexProperty SoSFField of a vertex-based shape, the SoVertexProperty
node is the most efficient way to specify vertex-based shapes. Using the directly referenced SoVertexProperty
node results in significantly faster scene rendering than scene graph inheritance of vertex properties, provided all required vertex properties are specified in the SoVertexProperty
node.
Because the class SoVertexProperty
is derived from SoNode
, a vertex property node can be inserted as a child node in a scene graph. When inserted as a node in a scene graph, the SoVertexProperty
node is traversed like any other property node, and the properties it specifies are inherited by subsequent shape nodes in the scene graph. It specifies the current material and normal bindings and can be used to specify the current 3D coordinates, normals, texture coordinates, diffuse colors, and transparencies.
All multiple-valued fields in the SoVertexProperty
node are optional. If a field is not present (i.e., if it has 0 values), shapes requiring the missing information must obtain it from the current traversal state. However, users are cautioned that for optimal performance, the vertex property node should be referenced as the VertexProperty field of a SoVertexShape and should specify all values required to render that shape.
The various fields in a vertex property node can be used in place of corresponding fields in other property nodes, as follows: The vertex field contains 3D coordinates, similar to the point field of an SoCoordinate3
node. The Normal
field contains normal vectors, as found in the vector field of the SoNormal
node. The Ordered RGBA
field contains packed colors in hexadecimal format 0xrrggbbaa
, where rr
is the red value (between 00 and 0xFF hex), gg
is the green value (between 00 and 0xFF hex), bb
is the blue value (between 00 and 0xFF hex), and aa
is the alpha value (between 00 = transparent and 0xFF = opaque). The packed colors are equivalent to an SoPackedColor
node and provide values for both diffuse color and transparency. The Tex Coord
field replaces the point field of the SoTextureCoordinate2
node.
If the transparency type is SoGLRenderAction::SCREEN_DOOR, only the first transparency value will be used. With other transparency types, multiple transparencies will be used.
The Material Binding
field replaces the value field of the SoMaterialBinding
node. The Material Binding
field in a directly referenced SoVertexProperty
node has no effect unless there is a non-empty Ordered RGBA
field, in which case the material binding specifies the assignment of diffuse colors and alpha values to the shape. The Material Binding
field can take any of the material bindings supported by Open Inventor.
The Normal Binding
field replaces the value field of the SoNormalBinding
node. The Normal Binding
field of a directly referenced SoVertexProperty
node has no effect unless there is a non-empty normal field, in which case the normal binding specifies the assignment of normal vectors to the shape. The value of the Normal Binding
field can be any of the normal bindings supported by Open Inventor.
Parameter Fields¶
Field Index¶
Material Binding : Enum |
Normal : Vector3List |
Normal Binding : Enum |
Ordered RGBA : IntegerList |
Tex Coord : Vector2List |
Vertex : Vector3List |
Visible Fields¶
Ordered RGBA¶
-
name:
orderedRGBA
, type:
IntegerList
, default:
[ ]
¶ Sets the packed color(s), including transparency values.
Material Binding¶
-
name:
materialBinding
, type:
Enum
, default:
OVERALL
¶ Defines the material binding.
Values:
Title | Name | Description |
---|---|---|
Overall | OVERALL | The entire object has the same material. |
Per Vertex | PER_VERTEX | One material for each vertex of the object. |
Per Vertex Indexed | PER_VERTEX_INDEXED | One material for each vertex, indexed. |
Per Face | PER_FACE | One material for each face of the object. |
Per Face Indexed | PER_FACE_INDEXED | One material for each face, indexed. |
Per Part | PER_PART | One material for each part of the object. |
Per Part Indexed | PER_PART_INDEXED | One material for each part, indexed. |
Normal Binding¶
-
name:
normalBinding
, type:
Enum
, default:
PER_VERTEX_INDEXED
¶ Defines the normal binding.
Values:
Title | Name | Description |
---|---|---|
Overall | OVERALL | The entire object has the same normal. |
Per Vertex | PER_VERTEX | One normal for each vertex of the object. |
Per Vertex Indexed | PER_VERTEX_INDEXED | One normal for each vertex, indexed. |
Per Face | PER_FACE | One normal for each face of the object. |
Per Face Indexed | PER_FACE_INDEXED | One normal for each face, indexed. |
Per Part | PER_PART | One normal for each part of the object. |
Per Part Indexed | PER_PART_INDEXED | One normal for each part, indexed. |