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:

../../../Modules/Inventor/SoGVR/mhelp/Images/RayCaster.png

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.

Windows

Default Panel

../../../Modules/Inventor/SoGVR/mhelp/Images/Screenshots/SoGVRRayCastSettings._default.png

Output Fields

self

name: self, type: SoNode

Node that should be placed in-front of a SoGVRVolumeRenderer.

Parameter Fields

Visible Fields

Enabled

name: enabled, type: Bool, default: TRUE

Enable the GPU ray caster

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, see SoGVRDepthPeel for integration of transparent geometry.

Render Interactive To FBO

name: renderInteractiveToFBO, type: Bool, default: FALSE

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.