public class SoValueOrdering extends SoRenderList
SoRenderListthat 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.
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.
SoOctreeOrdering, SoRenderListDeprecated since Open Inventor 9800
SoValueOrdering has been deprecated and will be removed in next major version. Please use
SoSeparator.Cachings, SoSeparator.FastEditings, SoSeparator.RenderUnitIds
|Modifier and Type||Field and Description|
Allows ValueOrdering node to adjust decimation percentage value depending on the shape's rendering value.
Enables use of bounding boxes for shapes whose rendering value is too low to render the shape itself.
If true, then this node will automatically decide when a decimated version of a shape needs to be created.
Enables culling of shapes that are too small on the screen.
Sets threshold in pixels for drop culling.
Enables culling of shapes whose rendering value is too low.
AUTO, boundingBoxCaching, CLEAR_ZBUFFER, directVizCaching, DISABLE, fastEditing, KEEP_ZBUFFER, OFF, ON, pickCulling, renderCaching, renderCulling, renderUnitId
|Constructor and Description|
Constructor that takes approximate number of children as a hint.
addRenderObjectClass, addRenderObjectName, getNumRenderObjectNames, getNumRenderObjectTypes, getRenderObjectClass, getRenderObjectName, removeAllRenderObjectNames, removeRenderObjectClass, removeRenderObjectName
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 September 3, 2019, Copyright © Thermo Fisher Scientific. All rights reserved. http://www.openinventor.com