public class SoOcclusionCulling extends SoRenderList
SoRenderList
that performs an OpenGL-based occlusion culling test on its list of render objects.
The SoOcclusionCulling
node uses the functionality from SoRenderList
to create a list of paths to the shapes beneath it. It then reorganizes the list of shapes from front to back to perform an OpenGL-based occlusion culling test. The result is that render objects completely hidden by another visible object are not rendered. For instance, if the camera is inside an object, only the object containing the camera will be drawn (because that's the only object that the camera can see).
<font color="#0000FF">NOTE:</font> This class does not exist in Open Inventor 10.0 and later.
The SoOcclusionCulling
node depends on the graphics board having support for the OpenGL GL_HP_occlusion_test extension. If this OpenGL extension is not supported, the SoOcclusionCulling
node will have no effect on the display of the scene graph.
If the occlusionCulling node is below another culling node (for instance, an octree and an occlusion culling node) then it will use the renderObject list computed by the RenderList above it (the octree). In this particular case, the isHead field (from SoRenderList
) must be initialized to false. Otherwise the node will create its own renderObject list, which is unnecessary and time consuming at scene graph creation time.
File format/default:
OcclusionCulling {
renderCaching | AUTO |
boundingBoxCaching | AUTO |
renderCulling | AUTO |
pickCulling | AUTO |
fastEditing | DISABLE |
isHead | true |
Action behavior:
Actions use standard SoSeparator
traversal.
See also:
SoRenderList
, SoOctreeOrderingDeprecated since Open Inventor 9800
SoOcclusionCulling
has been deprecated and will be removed in next major version. Please use SoSeparator
instead.
SoSeparator.Cachings, SoSeparator.FastEditings, SoSeparator.RenderUnitIds
Inventor.ConstructorCommand
isHead
AUTO, boundingBoxCaching, CLEAR_ZBUFFER, directVizCaching, DISABLE, fastEditing, KEEP_ZBUFFER, OFF, ON, pickCulling, renderCaching, renderCulling, renderUnitId
boundingBoxIgnoring
VERBOSE_LEVEL, ZeroHandle
Constructor and Description |
---|
SoOcclusionCulling()
Deprecated.
Constructor.
|
Modifier and Type | Method and Description |
---|---|
int |
getNumFrame()
Deprecated.
Returns the number of frames between recalculation of the list of occluders when approximate occlusion is On.
|
int |
getThreshold()
Deprecated.
Returns the pixel threshold.
|
boolean |
getUseHPExtension()
Deprecated.
Returns true if the GL_HP_occlusion_test test is used instead of GL_NV_occlusion_query test.
|
boolean |
isApproximateOcclusion()
Deprecated.
Returns true if approximate occlusion is On.
|
void |
setApproximateOcclusion(boolean enable)
Deprecated.
Enabling this option may speed up rendering.
|
void |
setNumFrame(int num)
Deprecated.
When approximate occlusion is On, after num frames, the list of occluders will be recalculated.
|
void |
setThreshold(int threshold)
Deprecated.
Specifies the number of pixels below which the object will be culled.
|
void |
setUseHPExtension(boolean enable)
Deprecated.
By default, and if the hardware supports it, during the n-1 frames where occluders are not retested, occluded objects are tested with a more efficient test using the GL_NV_occlusion_query extension.
|
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 void setThreshold(int threshold)
public boolean getUseHPExtension()
setUseHPExtension
.public void setUseHPExtension(boolean enable)
public void setNumFrame(int num)
public int getNumFrame()
public int getThreshold()
public void setApproximateOcclusion(boolean enable)
public boolean isApproximateOcclusion()
Generated on January 23, 2025, Copyright © Thermo Fisher Scientific. All rights reserved. http://www.openinventor.com