This node sets the current shape complexity value. This is a heuristic value which provides a hint at what geometric complexity to render shape nodes. Values range from 0 to 1, where 0 means minimum complexity
and 1 means maximum complexity. Each shape node interprets complexity in its own way.
Shape complexity always affects rendering and primitive generation for the
SoCallbackAction. For some shapes, it also affects picking.
There
are three ways to interpret shape complexity, depending on the
type field.
BOUNDING_BOX complexity ignores the
value field and renders all shapes as bounding boxes, using the current material, drawing style, etc. The other
two types use the
value field to determine the tessellation of shapes into polygons.
OBJECT_SPACE complexity uses
value directly to determine the tessellation.
SCREEN_SPACE complexity depends on
value and the projected size of the shape on
the screen; a
value of 0 produces the minimum tessellation for a shape, and a
value of 1 produces a tessellation that is fine enough that each edge of a polygon is about 1 or two pixels in length. Since the projected
size depends on the camera position, objects may be tessellated differently every frame if the camera is moving; note that this may have adverse effects on render caching in
SoSeparator nodes.
The
SoComplexity node also sets
a hint for the quality of textures applied to shapes, based on the value of the
textureQuality field. The texture quality will take effect at the next Texture2 node; Texture2 nodes previously traversed will not be affected.