SoGVRRayCastSettings¶
-
InventorModule
¶ genre VolRendExtensions
author MeVis Medical Solutions AG
package MeVisLab/Standard
dll SoGVR
definition soGVR.def see also SoGVRVolumeRenderer
Purpose¶
The SoGVRRayCastSettings
module enables GPU ray casting on a SoGVRVolumeRenderer
module. The ray caster supports all features of the standard GVR volume renderer, including multiple volumes using SoGVRSecondaryVolume
, SoGVRTransformedVolume
.
The ray caster is fully extensible using the SoGVRShaderFunction
.
The features of the ray caster are:
- single pass GPU ray caster (full floating point precision blending in the shader)
- empty space skipping using proxy geometry
- early ray termination
- support for endoscopic rendering
- jittering for render artifact removal
- bricking (using large 3D cache textures and index lookup textures)
- On-the-fly gradient estimation
- multi volume support
- per tag shading
- integration of opaque OpenGL geometry
- support for OpenGL clipping planes
- support for slab rendering using
SoView2DScene
- fully extensible using
SoGVRShaderFunction
- first hit ray casting using
SoGVRFirstHitRayCastSettings
- almost all GVR extensions are supported
Usage¶
Place this module in front of a SoGVRVolumeRenderer
. It will switch the rendering mode from the default slicer to the GPU ray caster.
Details¶
Example CT dataset rendered using the GPU ray caster:
Tips¶
The ray caster stores the volume data as large 3D textures, either as whole volume textures or as large 3D cache volumes and an index lookup texture for bricking. This means that using the standard GVR slicer and the ray caster with the same SoGVRVolumeRenderer
is not a good idea, since using either render mode will purge the 3D textures used by the other render mode. Since the ray caster supports all features of the slicer, this is not a big limitation.
Output Fields¶
self¶
-
name:
self
, type:
SoNode
¶ Node that should be placed in-front of a
SoGVRVolumeRenderer
.
Parameter Fields¶
Field Index¶
Closest Vessel Threshold : Float |
Render Outside Main Volume : Bool |
Early Ray Termination : Float |
|
Enabled : Bool |
|
Integrate Opaque Geometry : Bool |
|
Jitter Mode : Enum |
|
Mida Mix Value : Float |
|
Render Interactive To FBO : Bool |
|
Render Mode : Enum |
Visible Fields¶
Closest Vessel Threshold¶
-
name:
closestVesselThreshold
, type:
Float
, default:
150
¶ Grey value threshold that is used when
Render Mode
is set to ClosestVessel
Mida Mix Value¶
-
name:
midaMixValue
, type:
Float
, default:
0
, minimum:
-1
, maximum:
1
¶ Interpolate between DVR (-1), MIDA (0) and MIP (+1), when
Render Mode
is set to MIDA.
Early Ray Termination¶
-
name:
earlyRayTermination
, type:
Float
, default:
0.99000001
¶ Defines at which accumulated alpha threshold the ray is terminated.
Render Outside Main Volume¶
-
name:
renderOutsideMainVolume
, type:
Bool
, default:
FALSE
¶ If enabled,
SoGVRTransformedVolume
volumes are rendered even if they are (partly) outside of the main volume. This allows to enable real multi-volume rendering with completely separate volumes that are still correctly mixed.
Integrate Opaque Geometry¶
-
name:
integrateOpaqueGeometry
, type:
Bool
, default:
FALSE
¶ If enabled, the opaque OpenGL geometry that is rendered before the
SoGVRVolumeRenderer
is correctly integrated by back projecting the depth buffer of the geometry rendering and truncating the ray caster rays accordingly. Transparent geometry can not be integrated with this approach, seeSoGVRDepthPeel
for integration of transparent geometry.
Render Mode¶
-
name:
renderMode
, type:
Enum
, default:
RayCast_Direct
¶ Selects the render mode, this overrides the
SoGVRVolumeRenderer
renderMode and blendMode.
Values:
Title | Name | Description |
---|---|---|
Direct | RayCast_Direct | Front-to-back direct volume rendering. |
Illuminated | RayCast_Illuminated | Front-to-back illuminated volume rendering. |
MIP | RayCast_MIP | Maximum intensity projection |
Min IP | RayCast_MinIP | Minimum intensity projection |
Mean IP | RayCast_MeanIP | Mean intensity projection (aka Average intensity projection) |
Closest Vessel | RayCast_ClosestVessel | Closest Vessel Projection (using Closest Vessel Threshold ) |
MIDA | RayCast_MIDA | Maximum Intensity Difference Accumulation (see Instant Volume Visualization using Maximum Intensity Difference Accumulation by Stefan Bruckner, Meister Eduard Gröller) |
MIDA Illuminated | RayCast_MIDA_Illuminated | Illuminated Maximum Intensity Difference Accumulation (see Instant Volume Visualization using Maximum Intensity Difference Accumulation by Stefan Bruckner, Meister Eduard Gröller) |
Jitter Mode¶
-
name:
jitterMode
, type:
Enum
, default:
RayCast_JitterOff
¶ Allows to select different jitter modes for render artifact removal.
Values:
Title | Name | Description |
---|---|---|
Off | RayCast_JitterOff | Turn jittering off. |
Half Step | RayCast_JitterHalfStep | Jitter every second ray by half a sampling step. |
Random | RayCast_JitterRandom | Jitter each ray by up to one sample step, using a randomized pattern. |