SoPathTracerVolume

InventorModule
author MeVis Medical Solutions AG
package MeVisLab/Standard
dll SoPathTracer
definition SoPathTracer.def
inherits from SoPathTracerVolumeBase
keywords volume, rendering, ray, casting, woodcock

Purpose

The SoPathTracerVolume module allows to load and render a volume in a SoPathTracer scene. The volume can render itself when Enable Volume Rendering is enabled, or it can be rendered/used by other modules like SoPathTracerVolumeInstance, SoPathTracerIsoSurface or SoPathTracerSlice.

The same volume can be rendered with different LUTs, transformation, clipping, masking, tagging and subvolume settings using multiple SoPathTracerVolumeInstance.

For additional material/volume shader settings, you can add a SoPathTracerMaterial to the inMaterial. Via the material it is also possible to do boundary enhancement and silhouette rendering.

The SoPathTracer supports an unlimited (except for GPU limits) number of volumes and allows arbitrary affine transformations of the volumes. All volumes and geometry cast shadows on each other and are correctly integrated.

Volume transformations can be done either via the Inventor scene or via the Matrix. You need to use SoTransformSeparator or SoResetTransform when transforming a volume via the scene, so that the model transformation at the SoPathTracer is identity (I hope we will fix that in the future).

Restriction: In the current implementation, translucent overlapping volumes are not combined physically correct, but the current implementation works fine for surface-like volumes/LUTs without large highly transparent regions.

../../../Projects/MeVisPathTracer/SoPathTracer/Modules/mhelp/Images/motor5.jpg

Windows

Default Panel

../../../Projects/MeVisPathTracer/SoPathTracer/Modules/mhelp/Images/Screenshots/SoPathTracerVolume._default.png

Input Fields

inMaterial

name: inMaterial, type: SoNode

see SoPathTracerVolumeBase.inMaterial

inLUT

name: inLUT, type: MLBase, deprecated name: inDiffuseLUT

inVolume

name: inVolume, type: Image

The input dataset.

Parameter Fields

Visible Fields

Enable Clipping

name: enableClipping, type: Bool, default: TRUE

see SoPathTracerVolumeBase.enableClipping

Flip Clipping

name: flipClipping, type: Bool, default: FALSE

see SoPathTracerVolumeBase.flipClipping

Cast Shadow

name: castShadow, type: Bool, default: TRUE

Receive Shadow

name: receiveShadow, type: Bool, default: TRUE

Enabled

name: enabled, type: Bool, default: TRUE

see SoPathTracerVolumeBase.enabled

Enable Volume Rendering

name: enableVolumeRendering, type: Bool, default: TRUE

see SoPathTracerVolumeBase.enableVolumeRendering

Volume Name

name: volumeName, type: String, default: main

see SoPathTracerVolumeBase.volumeName

Mask Volume Name

name: maskVolumeName, type: String, default: mask

see SoPathTracerVolumeBase.maskVolumeName

Tag Volume Name

name: tagVolumeName, type: String, default: tags

see SoPathTracerVolumeBase.tagVolumeName

Gradient Volume Name

name: gradientVolumeName, type: String, default: gradients

Allows to load a SoPathTracerGradientVolume with the given name.

Time Point

name: timePoint, type: Integer, default: 0

see SoPathTracerVolumeBase.timePoint

Mask Color0

name: maskColor0, type: Color, default: 1 0 0

see SoPathTracerVolumeBase.maskColor0

Mask Color1

name: maskColor1, type: Color, default: 1 1 1

see SoPathTracerVolumeBase.maskColor1

Mask Alpha0

name: maskAlpha0, type: Float, default: 0, minimum: 0, maximum: 1

see SoPathTracerVolumeBase.maskAlpha0

Mask Alpha1

name: maskAlpha1, type: Float, default: 1, minimum: 0, maximum: 1

see SoPathTracerVolumeBase.maskAlpha1

Mask Tag0

name: maskTag0, type: Integer, default: 0, minimum: 0, maximum: 1

see SoPathTracerVolumeBase.maskTag0

Mask Tag1

name: maskTag1, type: Integer, default: 0, minimum: 0, maximum: 1

see SoPathTracerVolumeBase.maskTag1

Step Size Factor

name: stepSizeFactor, type: Float, default: 1, minimum: 0.25, maximum: 10

see SoPathTracerVolumeBase.stepSizeFactor

Step Size Factor Shadow

name: stepSizeFactorShadow, type: Float, default: 1, minimum: 0.25, maximum: 10

see SoPathTracerVolumeBase.stepSizeFactorShadow

Self Shadowing Offset

name: selfShadowingOffset, type: Float, default: 1, minimum: 0, maximum: 10

see SoPathTracerVolumeBase.selfShadowingOffset

Transpose matrix

name: transposeAdditionalMatrix, type: Bool, default: TRUE

see SoPathTracerVolumeBase.transposeAdditionalMatrix

Matrix

name: additionalMatrix, type: Matrix, default: 1 0 0 0, 0 1 0 0, 0 0 1 0, 0 0 0 1

see SoPathTracerVolumeBase.additionalMatrix

X (subVolumeStartX)

name: subVolumeStartX, type: Integer, default: 0

see SoPathTracerVolumeBase.subVolumeStartX

Y (subVolumeStartY)

name: subVolumeStartY, type: Integer, default: 0

see SoPathTracerVolumeBase.subVolumeStartY

Z (subVolumeStartZ)

name: subVolumeStartZ, type: Integer, default: 0

see SoPathTracerVolumeBase.subVolumeStartZ

X (subVolumeEndX)

name: subVolumeEndX, type: Integer, default: 999999

see SoPathTracerVolumeBase.subVolumeEndX

Y (subVolumeEndY)

name: subVolumeEndY, type: Integer, default: 999999

see SoPathTracerVolumeBase.subVolumeEndY

Z (subVolumeEndZ)

name: subVolumeEndZ, type: Integer, default: 999999

see SoPathTracerVolumeBase.subVolumeEndZ

Use world positions

name: subVolumeUseWorldPositions, type: Bool, default: FALSE

see SoPathTracerVolumeBase.subVolumeUseWorldPositions

World Start Position

name: subVolumeWorldStart, type: Vector3, default: 0 0 0

see SoPathTracerVolumeBase.subVolumeWorldStart

World End Position

name: subVolumeWorldEnd, type: Vector3, default: 0 0 0

see SoPathTracerVolumeBase.subVolumeWorldEnd

Tracing Method

name: tracingMethod, type: Enum, default: Tracing_RayMarching

see SoPathTracerVolumeBase.tracingMethod

Shader Type

name: shaderType, type: Enum, default: Shader_Hybrid

see SoPathTracerVolumeBase.shaderType

Gradient Factor

name: gradientFactor, type: Float, default: 3, minimum: 0, maximum: 20

see SoPathTracerVolumeBase.gradientFactor

Hidden Fields

precomputeGradients

name: precomputeGradients, type: Bool, default: FALSE

If enabled, the gradients of the volume are precomputed. This requires additional GPU memory and should only be used for debugging the on-the-fly gradients or if the on-the-fly gradients provide a bad quality.