SoGVRDepthPeel¶
-
InventorModule
¶ genre VolRend
author MeVis Medical Solutions AG
package MeVisLab/Standard
dll SoGVR
definition soGVR.def
Purpose¶
The SoGVRDepthPeel
allows to render transparent geometry with correct transparency blending (without the need of sorting triangles) inside of the volume rendering of the SoGVRVolRen module. It is an image-space algorithm, so it has pixel precision and even allows intersecting transparent triangles. It works by rendering the connected scene in a multiple passes and peels one RGBA layer per pass using a double depth test.
The SoGVRVolumeRenderer
module is then switched into a multi-pass mode that renders the peeled layers and the volume data in an interleaved fashion. The resulting image shows transparent geometries inside of the volume rendering. In addition to this, the peeled depth layers can be used to render the volume differently inside and outside of the geometry layers. This allows to do masking or depth clipping the volume to geometry, which may even change interactively.
This module is not yet optimized, so you will see a performance drop due to the multipass rendering. Future version might make use of occlusion culling to speed up rendering a lot.
Details¶
This module requires OpenGL 2.0 and the following OpenGL extensions:
ARB_depth_texture, EXT_framebuffer_object
Tips¶
The module can be used for clipping the volume against geometry as well, instead of rendering the peeled layers.
Input Fields¶
The node accepts any number of inventor inputs and renders the scene below using depth peeling.
Output Fields¶
self¶
-
name:
self
, type:
SoNode
¶ a node that should be put in front of the
SoGVRVolumeRenderer
Parameter Fields¶
Field Index¶
boundingBoxCaching : Enum |
opaqueBackgroundPass : Bool |
simulatedAlpha : Float |
debugLayers : Integer |
Outside Alpha : Float |
Supports Depth Peeling : Bool |
Draw Layers : Bool |
Outside Color : Color |
Tag Mode : Enum |
Enabled : Bool |
Outside Tag Value : Integer |
useStencilBuffer : Bool |
Inside Alpha : Float |
pickCulling : Enum |
|
Inside Color : Color |
renderCaching : Enum |
|
Inside Tag Value : Integer |
renderCulling : Enum |
|
Layers : Integer |
sceneDepthCompare : Bool |
Visible Fields¶
Supports Depth Peeling¶
-
name:
supportsDepthPeeling
, type:
Bool
, persistent:
no
, deprecated name:
supportsFBO
¶ Indicates if depth peeling is supported.
Layers¶
-
name:
layers
, type:
Integer
, default:
4
, minimum:
1
, maximum:
8
¶ Defines how many layers should be peeled.
Enabled¶
-
name:
modifyRGBA
, type:
Bool
, default:
TRUE
¶ Enables modification of the color/alpha of the volume depending on the geometry.
Draw Layers¶
-
name:
drawLayers
, type:
Bool
, default:
TRUE
¶ Enables the drawing of the geometry layers
Inside Alpha¶
-
name:
insideAlpha
, type:
Float
, default:
1
, minimum:
0
, maximum:
1
¶ Defines the alpha factor inside of the geometry.
Outside Alpha¶
-
name:
outsideAlpha
, type:
Float
, default:
0
, minimum:
0
, maximum:
1
¶ Defines the alpha factor outside of the geometry.
Inside Color¶
-
name:
insideColor
, type:
Color
, default:
1 1 1
¶ Defines the color factor inside of the geometry.
Outside Color¶
-
name:
outsideColor
, type:
Color
, default:
1 1 1
¶ Defines the color outside of the geometry.
Inside Tag Value¶
-
name:
insideTagValue
, type:
Integer
, default:
1
¶ Defines the tag volume inside of the geometry.
Outside Tag Value¶
-
name:
outsideTagValue
, type:
Integer
, default:
0
¶ Defines the tag value outside of the geometry.
Tag Mode¶
-
name:
tagMode
, type:
Enum
, default:
Off
¶ Defines how the depth peeling influences the tag value.
Values:
Title | Name | Description |
---|---|---|
Set As Tag Value | SetAsTagValue | Set the tag value via Outside Tag Value and Inside Tag Value when outside/inside the geometry. |
Off | Off | Do not change the tag value. |