Click or drag to resize
SoGLRenderAction Class

Renders a scene graph using Open Inventor's Render Engine.

Inheritance Hierarchy
SystemObject
  OIV.InventorSoNetBase
    OIV.Inventor.ActionsSoAction
      OIV.Inventor.ActionsSoGLRenderAction
        OIV.Inventor.ActionsSoHighlightRenderAction

Namespace: OIV.Inventor.Actions
Assembly: OIV.Inventor (in OIV.Inventor.dll) Version: 2023.1.3.0 (2023.1.3)
Syntax
public class SoGLRenderAction : SoAction

The SoGLRenderAction type exposes the following members.

Constructors
  NameDescription
Public methodSoGLRenderAction

Constructor.

Top
Methods
  NameDescription
Public methodAbortNow
Public methodApply(SoNode)

Initiates an action on the graph defined by a node.

(Overrides SoActionApply(SoNode).)
Public methodApply(SoPath)

Initiates an action on the graph defined by a path.

(Overrides SoActionApply(SoPath).)
Public methodApply(SoPathList)
Calls Apply(pathList, false).
Public methodApply(SoPathList, Boolean)

Initiates an action on the graph defined by a list of paths.

(Overrides SoActionApply(SoPathList, Boolean).)
Public methodClearApplyResult

When applied, an action may reference nodes or create objects (e.g.

(Inherited from SoAction.)
Public methodEnableDepthPeeling3D

Use 3D texturing instead of 2D for the fixed functionality emulation in depth peeling.

Public methodStatic memberEnableElement
Public methodEnableElements

(Overrides SoActionEnableElements.)
Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Public methodForwardTraversal(SoNode)

Traverse a node that is not part of the current scenegraph.

(Inherited from SoAction.)
Public methodForwardTraversal(SoPath)

Traverse a path that is not part of the current scenegraph.

(Inherited from SoAction.)
Public methodStatic memberGenerateCacheContext

Generates and returns a new cache context id.

Public methodGetCache
Public methodGetCacheContext

Returns the OpenGL cache context id for this action.

Public methodGetContinueActionInBranchFlag

This function indicates if the action must stop in the current branch.

(Inherited from SoAction.)
Public methodGetCurPass
Public methodGetCurPath

Returns the path accumulated during traversal, i.e., the chain of nodes from the root of the traversed graph to the current node being traversed.

(Inherited from SoAction.)
Public methodGetDecimationPercentage

Gets decimation percentage, the value should be a number between 0.0 and 1.0.

Public methodGetDecimationType

Gets decimation type.

Public methodGetDelayedObjDepthWrite

Returns whether delayed transparent objects update the depth buffer.

Public methodGetDepthPeelingPass

Get the current pass of depth peeling, -1 if not doing depth peeling.

Public methodGetDistribMode

Returns the distribution mode of this action across a cluster (ScaleViz-Cluster only).

(Inherited from SoAction.)
Public methodGetFastEditSavePolicy

Returns fast editing save policy used when rendering.

Public methodGetFrameCounter

Returns the current frame counter.

Public methodGetHashCode
Overrides GetHashCode().
(Inherited from SoNetBase.)
Public methodGetInvalidateCacheMode

Returns the current cache invalidation mode.

Public methodGetLogicalViewportRegion

Returns current logical viewport region.

Public methodGetNodeAppliedTo

Returns the node the action is being applied to.

(Inherited from SoAction.)
Public methodGetNumPasses

Gets number of rendering passes for multipass rendering.

Public methodGetOriginalPathListAppliedTo

Returns the original path list the action is being applied to.

(Inherited from SoAction.)
Public methodGetPathAppliedTo

Returns the path the action is being applied to.

(Inherited from SoAction.)
Public methodGetPathCode

Returns path code based on where current node (the node at the end of the current path) lies with respect to the path(s) the action is being applied to.

(Inherited from SoAction.)
Public methodGetPathListAppliedTo

Returns the path list the action is being applied to.

(Inherited from SoAction.)
Public methodGetPipeId

Gets pipe identifier in the range [1..N] associated to this render action while running a ScaleViz Multipipe configuration.

(Inherited from SoAction.)
Public methodGetRenderingIsRemote

Returns true if remote rendering is being done.

Public methodGetSceneManager

Return the OIV.Inventor.SoSceneManager associated with this action.

(Inherited from SoAction.)
Public methodGetSortedLayersNumPasses

Returns the number of rendering passes used when transparency type is OIV.Inventor.Actions.SoGLRenderAction.TransparencyTypes.SORTED_PIXEL.

Public methodGetState

Gets the state from the action.

(Inherited from SoAction.)
Public methodGetTransparencyType

Returns transparency quality level to use when rendering.

Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGetUpdateArea

Returns the current update area.

Public methodGetViewportRegion

Returns viewport region to use for rendering.

Public methodGetWhatAppliedTo

Returns code indicating what action is being applied to.

(Inherited from SoAction.)
Public methodHandleTransparency
Calls HandleTransparency(false, false).
Public methodHandleTransparency(Boolean)
Calls HandleTransparency(isTransparent, false).
Public methodHandleTransparency(Boolean, Boolean)
Public methodHasTerminated

Returns true if the traversal has reached a termination condition.

(Inherited from SoAction.)
Public methodInvalidateState

Invalidate the state, forcing it to be recreated at the next apply.

(Overrides SoActionInvalidateState.)
Public methodIsAlphaTest

Returns whether the OpenGL alpha test is enabled for rendering.

Public methodIsBeingApplied

Returns true if this action is currently being applied.

(Inherited from SoAction.)
Public methodIsDoingDepthPeeling

Return true if depth peeling is active.

Public methodIsLastPathListAppliedTo

Returns true if the current list is the last one from the original.

(Inherited from SoAction.)
Public methodIsPassUpdate

Returns a flag indicating whether intermediate results are displayed after each antialiasing pass for progressive improvement.

Public methodIsSmoothing Obsolete.

Returns smoothing flag.

Public methodStatic memberIsSortedLayersSupported
Calls IsSortedLayersSupported((OIV.Inventor.Misc.SoState ^)nullptr).
Public methodStatic memberIsSortedLayersSupported(SoState)

Indicates if OIV.Inventor.Actions.SoGLRenderAction.TransparencyTypes.SORTED_PIXEL transparency is supported by your graphics board on the current context.

Public methodStatic memberIsUsedCacheContext

Returns true if the specified cache context id is currently used by any OIV.Inventor.Actions.SoGLRenderAction.

Public methodIsUsingAlternateRep

Returns true if current action is using alternate representations.

(Inherited from SoAction.)
Public methodPostDelayedTraversal

Method called by SoMultiPassManager after delayed pass traversals.

(Overrides SoActionPostDelayedTraversal.)
Public methodPreDelayedTraversal

Method called by SoMultiPassManager before delayed pass traversals.

(Overrides SoActionPreDelayedTraversal.)
Public methodResetContinueActionInBranchFlag

This function resets the continue action flag.

(Inherited from SoAction.)
Public methodResetFrameCounter
Calls ResetFrameCounter(System.UInt32(0)).
Public methodResetFrameCounter(UInt32)

Reset the frame counter.

Public methodSetAlphaTest

Enable or disable the OpenGL alpha test for rendering.

Public methodSetCache

Sets the main cache to use with this render action.

Public methodSetCacheContext

Sets the OpenGL cache context.

Public methodSetDecimationValue(SoDecimationTypeElementTypes)
Calls SetDecimationValue(type, 1.0).
Public methodSetDecimationValue(SoDecimationTypeElementTypes, Single)

Sets decimation percentage, the value should be a number between 0.0 and 1.0 Useful for reducing the number of triangles rendered in the scene.

Public methodSetDelayedObjDepthWrite

Control whether delayed transparent objects update the depth buffer.

Public methodSetFastEditSavePolicy(SoGLRenderActionFastEditSavePolicies)
Calls SetFastEditSavePolicy(policy, false).
Public methodSetFastEditSavePolicy(SoGLRenderActionFastEditSavePolicies, Boolean)

Sets fast editing save policy to use when rendering.

Public methodSetInvalidateCacheMode

Enables or disables the invalidation of render caches.

Public methodSetLogicalViewportRegion

Sets current logical viewport region to use for rendering.

Public methodSetNumPasses

Sets number of rendering passes for multipass antialiasing.

Public methodSetPassUpdate

Sets a flag indicating whether intermediate results are displayed after each antialiasing pass for progressive improvement (default is false).

Public methodSetPipeId

Sets pipe identifier in the range [1..N] associated to this render action while running a ScaleViz Multipipe configuration.

(Inherited from SoAction.)
Public methodSetRenderingIsRemote

Sets whether or not "remote" rendering is done.

Public methodSetSceneManager

Set the scene manager associated with this action (if any ).

(Inherited from SoAction.)
Public methodSetSmoothing Obsolete.

Sets smoothing flag.

Public methodSetSortedLayersNumPasses

Sets the number of rendering passes used when transparency type is OIV.Inventor.Actions.SoGLRenderAction.TransparencyTypes.SORTED_PIXEL.

Public methodSetTransparencyType

Sets global transparency algorithm to use when rendering.

Public methodSetUpdateArea

Sets the current update area, which is the rectangular area of the viewport region that will actually be rendered into.

Public methodSetUpState

initialize the action state.

(Overrides SoActionSetUpState.)
Public methodSetViewportRegion

Changes viewport region to use for rendering.

Public methodShouldAutoCache

Called by nodes to say that they should/shouldn't be auto-cached (pass true if should, false if shouldn't, don't call this method at all if the node doesn't care):

Public methodStopActionInBranch

This function stops the action in the current Scene Graph branch.

(Inherited from SoAction.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodTraverse

Does traversal of a graph rooted by a node.

(Inherited from SoAction.)
Public methodUseAlternateRep

Tell the action to use alternate representations during traversal when available.

(Inherited from SoAction.)
Top
Properties
  NameDescription
Public propertyAbortCallback

Sets callback to call during rendering to test for an abort condition.

Public propertyPassCallback

Sets a callback function to invoke between passes when antialiasing.

Top
Remarks

This class renders a scene graph using Open Inventor's render engine. This action traverses a scene graph and queues commands that allow the render engine to render the scene asynchronously. Note that (despite the "historical" name) this class is not dependent on any graphics library and does not directly provide rendering to a window.

The viewer classes, SoWin/SoXt/SoQtExaminerViewer etc, automatically create a render action for you and also expose most of the rendering options for convenience. See also the viewer component classes (SceneExaminer etc).

Traversal order Nodes from the scene graph are traversed using depth-first traversal. However, traversal of some objects may be delayed, depending on transparency options.

A transparent object is an object:

  • With a material that has a transparency value set either by a material node or a vertex property node. or

  • With a texture that has an alpha value < 1.

Open Inventor automatically detects these cases.

The rendering order for transparent objects depends on the transparency "type" (transparency rendering method) assigned to each object. A transparency type may be set for the entire scene graph using the OIV.Inventor.Actions.SoGLRenderAction or OIV.Inventor.Win.SoWinRenderArea method.

There are several special cases including:

  • Transparency type SORTED_PIXEL. The environment variable OIV_NO_SHADER_LAYERS_BLEND allows you to disable the use of a fragment shader for this technique.

  • SoRenderList nodes, e.g. SoOctreeOrdering. Objects that are delayed are generally rendered in the sequence below, but other objects are rendered in various specific orders, not in scene graph order. See the specific node for details.

The general rendering order is:

Scene graph traversal All objects not in one of the following categories, specifically including transparent objects using the NO_SORT transparency type.

FastEdit KEEP_ZBUFFER objects Objects under an OIV.Inventor.Nodes.SoSeparator node with fastEditing field set to KEEP_ZBUFFER.

Opaque delayed objects

Transparent delayed objects Objects using transparency types OPAQUE_FIRST or SORTED_PIXEL. Note that by default the OpenGL depth buffer is not updated while rendering these objects.

Transparent sorted objects Objects using transparency types SORTED_OBJECT These objects are sorted by the distance of their bounding box from the camera, then rendered in back-to-front order. Note that by default the OpenGL depth buffer is not updated while rendering these objects.

Annotation delayed objects Objects under an OIV.Inventor.Nodes.SoAnnotation node.

FastEdit CLEAR_ZBUFFER objects Objects under an OIV.Inventor.Nodes.SoSeparator node with fastEditing field set to CLEAR_ZBUFFER.

Elements Sets: OIV.Inventor.Elements.SoDecimationTypeElement, OIV.Inventor.Elements.SoDecimationPercentageElement, OIV.Inventor.Elements.SoUpdateAreaElement, SoRenderPassElement, OIV.Inventor.Elements.SoViewportRegionElement, OIV.Inventor.Elements.SoLogicalViewportElement

Notes & Limitations:

See Also