public class SoOctreeOrdering extends SoRenderList
SoRenderList
that maintains a transparent octree organization of the shapes below it.
This speeds view frustum culling in large scenes in which the viewer moves through the scene and much of the scene is not visible at any given time.
The SoOctreeOrdering
node uses the functionality from SoRenderList
to create a list of paths to the shapes beneath it. It then reorganizes the list of shapes into an octree division of space. During action traversal, it traverses the octree instead of the scene graph. This results in a front to back traversal that quickly skips sections of space that would be culled by the view frustum.
<font color="#0000FF">NOTE:</font> This class does not exist in Open Inventor 10.0 and later.
The OctreeOrdering node draws a bounding box to replace cells in the octree that contain shapes but that are too small, based on an approximate screen size. If a larger shape had already been rendered that passes through this cell, the cell will be culled instead of using the bounding box so that no rendered geometry will be covered by a bounding box. This behavior can be altered by the fields listed below.
To specify the maximum depth during octree ordering, use environment variable IV_OCTREE_MAX_DEPTH. The default is 8.
To request an outline of the octree quadrants be drawn as a debugging aid to allow you to see how your scene is distributed throughout the octree, set environment variable OIV_DRAW_OCTREE to 1 or use the method setOctreeDrawing
.
Note: If an SoOcclusionCulling
node is inserted below the SoOctreeOrdering
node, the latter can pass its view-frustum-culled renderObject list to the occlusion node, which will perform an occlusion culling test to reduce even further the number of objects to render. See the isHead
field of SoRenderList
for additional info.
File format/default:
OctreeOrdering {
dropCulling | true |
dropScreenArea | 5 |
boundingBoxSubstitutes | true |
useMovingQueue | true |
adjustDecimation | true |
renderCaching | AUTO |
boundingBoxCaching | AUTO |
renderCulling | AUTO |
pickCulling | AUTO |
fastEditing | DISABLE |
isHead | true |
Action behavior:
SoGLRenderAction
, SoGetPrimitiveCountAction
Uses octree spatial traversal, rendering front to back. All other actions use standard SoSeparator
traversal. Sets: SoRenderObjectListElement
See also:
SoSplitGeometryAction
, SoGetPrimitiveCountAction
, SoLevelOfSimplification
, SoRenderList
, SoValueOrdering
, SoOcclusionCullingDeprecated since Open Inventor 9800
SoOctreeOrdering
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.
If true, the octree will alter the decimation percentage for objects depending on how large they are in the view.
|
SoSFBool |
boundingBoxSubstitutes
Deprecated.
Enables use of bounding boxes for cells in the octree that contain shapes, but would appear on the screen smaller than the dropScreenArea threshold.
|
SoSFBool |
dropCulling
Deprecated.
Enables culling of shapes that are too small on the screen.
|
SoSFUInt32 |
dropScreenArea
Deprecated.
Sets threshold in pixels for drop culling and bounding box substitutes.
|
SoSFBool |
useMovingQueue
Deprecated.
Sets how this node should handle moving render objects.
|
isHead
AUTO, boundingBoxCaching, CLEAR_ZBUFFER, directVizCaching, DISABLE, fastEditing, KEEP_ZBUFFER, OFF, ON, pickCulling, renderCaching, renderCulling, renderUnitId
boundingBoxIgnoring
VERBOSE_LEVEL, ZeroHandle
Constructor and Description |
---|
SoOctreeOrdering()
Deprecated.
Default constructor.
|
SoOctreeOrdering(int numChildren)
Deprecated.
Constructor that takes approximate number of children as a hint.
|
Modifier and Type | Method and Description |
---|---|
boolean |
getHandleTransparency()
Deprecated.
|
boolean |
isChainingOn()
Deprecated.
Returns true if the octree is chained with another culling node.
|
boolean |
isOctreeDrawing()
Deprecated.
Returns true if octree drawing is enabled.
|
void |
reset()
Deprecated.
Allows to rebuild the octree from scratch.
|
void |
setHandleTransparency(boolean handle)
Deprecated.
If handle transparency is turned on, the octree will handle transparency and render cache transparent objects.
|
void |
setOctreeDrawing(boolean enable)
Deprecated.
Enables/disables octree drawing.
|
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 boundingBoxSubstitutes
public final SoSFBool useMovingQueue
public final SoSFBool adjustDecimation
public SoOctreeOrdering()
public SoOctreeOrdering(int numChildren)
public void setHandleTransparency(boolean handle)
public void setOctreeDrawing(boolean enable)
public void reset()
public boolean isOctreeDrawing()
public boolean isChainingOn()
public boolean getHandleTransparency()
Generated on January 23, 2025, Copyright © Thermo Fisher Scientific. All rights reserved. http://www.openinventor.com