SoGLRenderAction Class |
Renders a scene graph using OpenGL.
Namespace: OIV.Inventor.Actions
The SoGLRenderAction type exposes the following members.
Name | Description | |
---|---|---|
![]() | SoGLRenderAction | Constructor. |
Name | Description | |
---|---|---|
![]() | AbortNow | |
![]() | Apply(SoNode) | Initiates an action on the graph defined by a node. |
![]() | Apply(SoPath) | Initiates an action on the graph defined by a path. |
![]() | Apply(SoPathList) | Calls Apply(pathList, false). (Inherited from SoAction.) |
![]() | Apply(SoPathList, Boolean) | Initiates an action on the graph defined by a list of paths. |
![]() | ClearApplyResult | When applied, an action may reference nodes or create objects (e.g. |
![]() | EnableDepthPeeling3D | Use 3D texturing instead of 2D for the fixed functionality emulation in depth peeling. |
![]() ![]() | EnableElement | |
![]() | EnableElements | (Overrides SoActionEnableElements.) |
![]() | Equals | (Inherited from Object.) |
![]() | ForwardTraversal | Traverse a node that is not part of the current scenegraph. |
![]() ![]() | GenerateCacheContext | Generates and returns a new cache context id. |
![]() | GetCacheContext | Returns the OpenGL cache context id for this action. |
![]() | GetContinueActionInBranchFlag | This function indicates if the action must stop in the current branch. |
![]() | GetCurPass | |
![]() | GetCurPath | (Inherited from SoAction.) |
![]() | GetDecimationPercentage | Gets decimation percentage, the value should be a number between 0.0 and 1.0. |
![]() | GetDecimationType | Gets decimation type. |
![]() | GetDelayedObjDepthWrite | Returns whether delayed transparent objects update the depth buffer. |
![]() | GetDepthPeelingPass | Get the current pass of depth peeling, -1 if not doing depth peeling. |
![]() | GetFastEditSavePolicy | Returns fast editing save policy used when rendering. |
![]() | GetFrameCounter | Returns the current frame counter. |
![]() | GetHashCode |
Overrides GetHashCode().
(Inherited from SoNetBase.) |
![]() | GetInvalidateCacheMode | Returns the current cache invalidation mode. |
![]() | GetLogicalViewportRegion | Returns current logical viewport region. |
![]() | GetNodeAppliedTo | (Inherited from SoAction.) |
![]() | GetNumPasses | Gets number of rendering passes for multipass rendering. |
![]() | GetOriginalPathListAppliedTo | (Inherited from SoAction.) |
![]() | GetPathAppliedTo | (Inherited from SoAction.) |
![]() | GetPathCode(SbNativeArrayInt32) | 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. |
![]() | GetPathCode(SbNativeInt32Array) | Obsolete. 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. |
![]() | GetPathListAppliedTo | (Inherited from SoAction.) |
![]() | GetPipeId | Gets pipe identifier in the range [1..N] associated to this render action while running a ScaleViz Multipipe configuration. |
![]() | GetRenderingIsRemote | Returns true if remote rendering is being done. |
![]() | GetSceneManager | Return the SoSceneManager associated with this action. |
![]() | GetSortedLayersNumPasses | Returns the number of rendering passes used when transparency type is SORTED_PIXELS_BLEND. |
![]() | GetSortedTrianglesNumCaches | Returns the maximum number of caches allowed for the sorted triangles transparency types. |
![]() | GetSortedTrianglesSortFrequency | Returns the sort frequency used for the SORTED_TRIANGLES_XXX and SORTED_OBJECT_TRIANGLES_XXX transparency types. |
![]() | GetState | (Inherited from SoAction.) |
![]() | GetTransparencyType | Returns transparency quality level to use when rendering. |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | GetUpdateArea | Returns the current update area. |
![]() | GetViewportRegion | Returns viewport region to use for rendering. |
![]() | GetWhatAppliedTo | (Inherited from SoAction.) |
![]() | HandleTransparency | Calls HandleTransparency(false, false). |
![]() | HandleTransparency(Boolean) | Calls HandleTransparency(isTransparent, false). |
![]() | HandleTransparency(Boolean, Boolean) | |
![]() | HasTerminated | (Inherited from SoAction.) |
![]() | InvalidateState | Invalidate the state, forcing it to be recreated at the next apply. |
![]() | IsAlphaTest | Returns whether the OpenGL alpha test is enabled for rendering. |
![]() | IsBeingApplied | Returns true if this action is currently being applied. |
![]() | IsDoingDepthPeeling | Return true if depth peeling is active. |
![]() | IsLastPathListAppliedTo | (Inherited from SoAction.) |
![]() | IsPassUpdate | Returns a flag indicating whether intermediate results are displayed after each antialiasing pass for progressive improvement. |
![]() | IsSmoothing | Returns smoothing flag. |
![]() ![]() | IsSortedLayersSupported | Calls IsSortedLayersSupported((OIV.Inventor.Misc.SoState ^)nullptr). |
![]() ![]() | IsSortedLayersSupported(SoState) | Indicates if SORTED_PIXELS_BLEND transparency is supported by your graphics board on the current context. |
![]() ![]() | IsUsedCacheContext | Returns true if the specified cache context id is currently used by any SoGLRenderAction. |
![]() | IsUsingAlternateRep | Returns true if current action is using alternate representations. |
![]() | PostDelayedTraversal | Method called by SoMultiPassManager after delayed pass traversals. |
![]() | PreDelayedTraversal | Method called by SoMultiPassManager before delayed pass traversals. |
![]() | ResetContinueActionInBranchFlag | This function resets the continue action flag. |
![]() | ResetFrameCounter | Calls ResetFrameCounter(System.UInt32(0)). |
![]() | ResetFrameCounter(UInt32) | Reset the frame counter. |
![]() | SetAbortCallback(SoGLRenderActionAbortCB) | Obsolete.
Use AbortCallback property instead.
Sets delegate to call during rendering to test for an abort condition. It will
be called for each node that is traversed. This allows applications to terminate
rendering prematurely if some condition occurs. The delegate methodh should
return one of the AbortCode codes to indicate whether traversal should continue.
Use of the various codes in a delegate can allow applications to modify Open
Inventor's default order of rendering objects in a scene graph.
|
![]() | SetAbortCallback(SoGLRenderActionAbortUserDataCB, Object) | Obsolete.
Use AbortCallback property instead.
|
![]() | SetAlphaTest | Enable or disable the OpenGL alpha test for rendering. |
![]() | SetCacheContext | Sets the OpenGL cache context. |
![]() | SetDecimationValue(SoDecimationTypeElementTypes) | Calls SetDecimationValue(type, 1.0). |
![]() | SetDecimationValue(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. |
![]() | SetDelayedObjDepthWrite | Control whether delayed transparent objects update the depth buffer. |
![]() | SetFastEditSavePolicy(SoGLRenderActionFastEditSavePolicies) | Calls SetFastEditSavePolicy(policy, false). |
![]() | SetFastEditSavePolicy(SoGLRenderActionFastEditSavePolicies, Boolean) | Sets fast editing save policy to use when rendering. |
![]() | SetInvalidateCacheMode | Enables or disables the invalidation of render caches. |
![]() | SetLogicalViewportRegion | Sets current logical viewport region to use for rendering. |
![]() | SetNumPasses | Sets number of rendering passes for multipass antialiasing. |
![]() | SetPassCallback(SoGLRenderActionPassCB) | Obsolete.
Use PassCallback property instead.
Sets a delegate method to invoke between passes when antialiasing. Passing
NULL (which is the default state) will cause a clear of the color and depth
buffers to be performed.
|
![]() | SetPassCallback(SoGLRenderActionPassUserDataCB, Object) | Obsolete.
Use PassCallback property instead.
|
![]() | SetPassUpdate | Sets a flag indicating whether intermediate results are displayed after each antialiasing pass for progressive improvement (default is false). |
![]() | SetPipeId | Sets pipe identifier in the range [1..N] associated to this render action while running a ScaleViz Multipipe configuration. |
![]() | SetRenderingIsRemote | Sets whether or not "remote" rendering is done. |
![]() | SetSceneManager | Set the scene manager associated with this action (if any ). |
![]() | SetSmoothing | Sets smoothing flag. |
![]() | SetSortedLayersNumPasses | Sets the number of rendering passes used when transparency type is SORTED_PIXELS_BLEND or DELAYED_SORTED_PIXELS_BLEND. |
![]() | SetSortedTrianglesNumCaches | Sets the number of caches to use when the transparency type is SORTED_TRIANGLES_XXX or SORTED_OBJECT_TRIANGLES_XXX. |
![]() | SetSortedTrianglesSortFrequency | This method specifies the angle between each sorting axis when using the transparency type SORTED_TRIANGLES_XXX or SORTED_OBJECT_TRIANGLES_XXX. |
![]() | SetTransparencyType | Sets global transparency algorithm to use when rendering. |
![]() | SetUpdateArea | Sets the current update area, which is the rectangular area of the viewport region that will actually be rendered into. |
![]() | SetUpState | initialize the action state. |
![]() | SetViewportRegion | Changes viewport region to use for rendering. |
![]() | ShouldAutoCache | 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): |
![]() | StopActionInBranch | This function stops the action in the current Scene Graph branch. |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
![]() | Traverse | (Inherited from SoAction.) |
![]() | UseAlternateRep | Tell the action to use alternate representations during traversal when available. |
Name | Description | |
---|---|---|
![]() | AbortCallback | Sets callback to call during rendering to test for an abort condition. |
![]() | PassCallback | Sets a callback function to invoke between passes when antialiasing. |
This class traverses a scene graph and renders it using the OpenGL graphics library. It assumes that a valid window has been created and initialized for proper OpenGL rendering. The SoWinRenderArea class or any of its subclasses may be used to create such a window.
This class has many options for rendering, but the most commonly used methods are exposed by the viewer classes (SoWin, SoXt, SoQt) for convenience. The viewer classes automatically create a render action for you.
Traversal order In most cases objects are rendered during the SoGLRenderAction traversal of the scene graph, in the order they are encountered during the traversal. However rendering of some objects may be delayed until after the scene graph traversal, particularly transparent objects.
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 SoGLRenderAction or SoWinRenderArea method. The transparency type may also be modified during traversal using the SoTransparencyType node.
There are several special cases including:
Transparency type SORTED_PIXELS_BLEND. 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 SCREEN_DOOR, ADD, or BLEND transparency types.
FastEdit KEEP_ZBUFFER objects Objects under an SoSeparator node with fastEditing field set to KEEP_ZBUFFER.
Opaque delayed objects
Transparent delayed objects Objects using transparency types DELAYED_BLEND or DELAYED_ADD. Note that by default the OpenGL depth buffer is not updated while rendering these objects.
Transparent sorted objects Objects using transparency types SORTED_OBJECT_BLEND or SORTED_OBJECT_ADD. 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.
Transparent sorted triangles by object Objects using transparency types SORTED_OBJECT_TRIANGLES_ADD or SORTED_OBJECT_TRIANGLES_BLEND. First, objects are sorted according to their projected position on the current sorting axis. Then the triangles are sorted within each object and rendered object by object.
Transparent sorted triangles Objects using transparency types SORTED_TRIANGLES_ADD or SORTED_TRIANGLES_BLEND. All of the triangles for all of the objects in the scene are sorted according to their projected position on the current sorting axis. The triangles are rendered in order, triangle by triangle, regardless of the object they belong to.
Annotation delayed objects Objects under an SoAnnotation node.
FastEdit CLEAR_ZBUFFER objects Objects under an SoSeparator node with fastEditing field set to CLEAR_ZBUFFER.
Front buffer objects Objects under an SoFrontBufferGroup (after the buffer swap).
Elements Sets: SoDecimationTypeElement, SoDecimationPercentageElement, SoUpdateAreaElement, SoRenderPassElement, SoViewportRegionElement, SoLogicalViewportElement