SoGVRMeanIPMode

InventorModule
genre VolRendExtensions
author MeVis Medical Solutions AG
package MeVisLab/Standard
dll SoGVR
definition SoGVRMeanIPMode.def
see also SoGVRVolumeRenderer
keywords volume, rendering, AverageIP, average

Purpose

The SoGVRMeanIPMode module extends the SoGVRVolumeRenderer with a mean intensity projection (aka average intensity projection). This mode is mainly useful for slab rendering, since rendering average of the complete volume does not make a lot of sense. Have a look at the example network on how to use the module together with the SoView2DScene module to render slabs. Since an average intensity projection requires to sum all voxel value along each ray, the module renderes to a window-sized offscreen floating-point framebuffer which stores the sum of all voxels along the rays and the number of voxels rendered for each ray for each pixel. In a post-processing step, a shader calculates the average based in this intermediate framebuffer and does a final lookup into the lookuptable (LUT).

  • Enabled:
  • Supported: Shows if the mode is supported on the current hardware.
  • Precision: Sets the precision that is used for the sum of the voxel values. Float16 The 16-bit floating-point buffer has 1 sign bit, 5 exponent bits, and 10 mantissa bits for each float value. Float32 The 32-bit floating-point buffer is in the standard IEEE float format.

Hardware Requirements

This module requires:

  • GLSL Shading Language 1.x
  • OpenGL ext_framebuffer_object and arb_texture_float extension

If these hardware requirements are not fulfilled, supported will be set to false and the rendering will be done in standard MIP mode. The maximum size of the intermediate framebuffer that is used it limited by the underlying OpenGL hardware. If the required framebuffer size is not supported by the OpenGL graphics card, the implementation tries to fall back to the largest possible power-of-two sized intermediate framebuffer and renderes to the smaller buffer. The shader which draws the results to the screen then bi-linearly samples from the intermediate buffer. This means that the module supports viewers of any size, but the image quality will be degraded for viewers larger than the supported hardware limits. Tests on a NVidia 8800GT board showed that Float16 is supported up to 4096x4096 pixels, while Float32 is supported up to 4096x2048 pixels. Have a look at the “Debugging” Tab of the module to detect the maximum capabilities of a specific graphics card.

Details

This module requires:

  • OpenGL 2.X support
  • GLSL Shading Language 1.x
  • OpenGL ext_framebuffer_object and arb_texture_float extension

If these hardware requirements are not fulfilled, supported will be set to false and the rendering will be done in standard MIP mode. The maximum size of the intermediate framebuffer that is used it limited by the underlying OpenGL hardware. If the required framebuffer size is not supported by the OpenGL graphics card, the implementation tries to fall back to the largest possible power-of-two sized intermediate framebuffer and renderes to the smaller buffer. The shader which draws the results to the screen then bi-linearly samples from the intermediate buffer. This means that the module supports viewers of any size, but the image quality will be degraded for viewers larger than the supported hardware limits. Tests on a NVidia 8800GT board showed that Float16 is supported up to 4096x4096 pixels, while Float32 is supported up to 4096x2048 pixels. Have a look at the “Debugging” Tab of the module to detect the maximum capabilities of a specific graphics card.

Output Fields

self

name: self, type: SoNode

a node that should be put in front of the SoGVRVolumeRenderer

Parameter Fields

Visible Fields

Enabled

name: enabled, type: Bool, default: TRUE

Defines if the mean intensity projection mode is enabled.

Supported

name: supported, type: Bool, persistent: no

Shows if the mode is supported on the current hardware.

Precision

name: precision, type: Enum, default: GVR_FLOAT16
Sets the precision that is used for the sum of the voxel values.
Float16 Float32 The 32-bit floating-point buffer is in the standard IEEE float format.

Values:

Title Name Description
Float16 GVR_FLOAT16 The 16-bit floating-point buffer has 1 sign bit, 5 exponent bits, and 10 mantissa bits for each float value.
Float32 GVR_FLOAT32 The 32-bit floating-point buffer is in the standard IEEE float format.

Enable Debug Printing

name: debug, type: Bool, persistent: no

Enables verbose debug outputs.