public class SoValueOrdering extends SoRenderList
SoRenderList
that alters the decimation of shapes below it depending on their rendering value as approximated by their size on the screen.
This makes it possible to render scenes with large numbers of shapes without needing LOD nodes.
The SoValueOrdering
node uses the functionality from SoRenderList
to create a list of paths to the shapes beneath it. It then traverses the linear list and determines the rendering value and cost of each shape. The rendering value is based on the object's approximate screen size and its cost is based on a count of the number of primitives the shape contains.
<font color="#0000FF">NOTE:</font> This class does not exist in Open Inventor 10.0 and later.
During each render traversal, the ValueOrdering node determines how many primitives a shape deserves based on its rendering value. If the shape contains multiple levels of detail, then the ValueOrdering node will choose the correct level of detail. However, this node also has two techniques that allow it to handle scenes that do not contain levels of detail: bounding box substitutes and drop culling.
With drop culling enabled, a user can specify a size in pixels such that when the shape is less than this size, the shape is not rendered.
If bounding box substitutes are enabled and the ValueOrdering node calculates that the number of triangles that the object deserves is closer to 12 (the number of triangles in a bounding box) than to the minimum number of triangles the shape can draw, then the ValueOrdering node will draw a bounding box instead of the shape.
If decimate substitutes are enabled, then the ValueOrdering will apply an SoGlobalSimpifyAction to shapes that it determines need simplification. Sometimes a shape has so many triangles that neither the bounding box nor the shape is a satisfactory choice given the shape's calculated value. In this case, the ValueOrdering will create and use a simplified version. The simplification is done when Inventor has been idle for over a second.
If low value culling is enabled, then the shape will not be rendered if the ValueOrdering node decides that its value in triangles is not even worth rendering a bounding box. This will happen if the decimation percentage value is set very low.
The typical scenario where this node is useful is in CAD model assembly viewing, where all or most of the scene is visible, but lots of details may be so small that there is no point in drawing them until the user zooms in on them. Replacing such detail with its bounding box is adequate in many cases and does not have the disk and memory costs, along with the preprocessing time, associated with maintaining multiple levels of detail.
File format/default:
ValueOrdering {
dropCulling | true |
dropScreenArea | 5 |
boundingBoxSubstitutes | true |
decimateSubstitutes | true |
lowValueCulling | true |
adjustDecimation | true |
isHead | true |
renderCaching | AUTO |
boundingBoxCaching | AUTO |
renderCulling | AUTO |
pickCulling | AUTO |
fastEditing | DISABLE |
Action behavior:
SoGLRenderAction
, SoGetPrimitiveCountAction
Uses value calculation to influence traversal. All other actions use standard SoSeparator
traversal.
See also:
SoGetPrimitiveCountAction
, SoLevelOfSimplification
, SoOctreeOrdering
, SoRenderListDeprecated since Open Inventor 9800
SoValueOrdering
has been deprecated and will be removed in next major version. Please use SoSeparator
instead.
SoSeparator.Cachings, SoSeparator.FastEditings, SoSeparator.RenderUnitIds
Inventor.ConstructorCommand
Modifier and Type | Field and Description |
---|---|
SoSFBool |
adjustDecimation
Deprecated.
Allows ValueOrdering node to adjust decimation percentage value depending on the shape's rendering value.
|
SoSFBool |
boundingBoxSubstitutes
Deprecated.
Enables use of bounding boxes for shapes whose rendering value is too low to render the shape itself.
|
SoSFBool |
decimateSubstitutes
Deprecated.
If true, then this node will automatically decide when a decimated version of a shape needs to be created.
|
SoSFBool |
dropCulling
Deprecated.
Enables culling of shapes that are too small on the screen.
|
SoSFUInt32 |
dropScreenArea
Deprecated.
Sets threshold in pixels for drop culling.
|
SoSFBool |
lowValueCulling
Deprecated.
Enables culling of shapes whose rendering value is too low.
|
isHead
AUTO, boundingBoxCaching, CLEAR_ZBUFFER, directVizCaching, DISABLE, fastEditing, KEEP_ZBUFFER, OFF, ON, pickCulling, renderCaching, renderCulling, renderUnitId
boundingBoxIgnoring
VERBOSE_LEVEL, ZeroHandle
Constructor and Description |
---|
SoValueOrdering()
Deprecated.
Default constructor.
|
SoValueOrdering(int numChildren)
Deprecated.
Constructor that takes approximate number of children as a hint.
|
addRenderObjectClass, addRenderObjectName, getNumRenderObjectNames, getNumRenderObjectTypes, getRenderObjectClass, getRenderObjectName, removeAllRenderObjectNames, removeRenderObjectClass, removeRenderObjectName
getNumRenderCaches, setNumRenderCaches
addChild, findChild, getChild, getNumChildren, insertChild, removeAllChildren, removeChild, removeChild, replaceChild, replaceChild
affectsState, callback, copy, copy, distribute, doAction, getAlternateRep, getBoundingBox, getByName, getMatrix, getPrimitiveCount, 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, getEXTERNPROTO, getName, getPROTO, isDisposable, isSynchronizable, setName, setSynchronizable
getAddress, getNativeResourceHandle, startInternalThreads, stopInternalThreads
public final SoSFBool dropCulling
public final SoSFUInt32 dropScreenArea
public final SoSFBool adjustDecimation
public final SoSFBool boundingBoxSubstitutes
public final SoSFBool decimateSubstitutes
SoGlobalSimplifyAction
, and use the results instead of the shape when needed.public final SoSFBool lowValueCulling
Generated on January 23, 2025, Copyright © Thermo Fisher Scientific. All rights reserved. http://www.openinventor.com