Class SoSlice
- All Implemented Interfaces:
SafeDisposable
- Direct Known Subclasses:
SoFenceSlice
,SoHeightFieldRender
,SoObliqueSlice
,SoOrthoSlice
,SoVolumeSkin
SoOrthoSlice
, SoObliqueSlice
, SoFenceSlice
, SoVolumeSkin
and SoHeightFieldRender
nodes.
The alphaUse
field controls how the voxel's alpha component is used when drawing the slice.
The enableBumpMapping
and bumpScale
fields control a rendering effect called bump mapping that simulates displacement of the slice surface using the gradient vectors (computed on the GPU) as normal vectors.
The largeSliceSupport
field enables direct loading of full resolution slice data from the volume reader, without (necessarily) loading complete tiles.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
Alpha component usage mode Used in thealphaUse
field.Nested classes/interfaces inherited from class com.openinventor.volumeviz.nodes.SoVolumeShape
SoVolumeShape.Compositions, SoVolumeShape.Interpolations
Nested classes/interfaces inherited from class com.openinventor.inventor.nodes.SoShape
SoShape.ShapeTypes
Nested classes/interfaces inherited from class com.openinventor.inventor.nodes.SoNode
SoNode.RenderModes
Nested classes/interfaces inherited from class com.openinventor.inventor.Inventor
Inventor.ConstructorCommand
-
Field Summary
FieldsModifier and TypeFieldDescriptionfinal SoSFEnum
<SoSlice.AlphaUses> Specifies how to use the alpha component of each voxel's RGBA value.final SoSFNode
This field optionally holds a subgraph containing only core Open Inventor nodes that can be used for rendering when VolumeViz is not available.final SoSFFloat
Specifies the intensity of the bump mapping effect.final SoSFBool
Specifies if a bump mapping effect will be applied to the slice.final SoSFBool
Activate/deactivate direct loading of full resolution slice data.final SoSFBool
Specifies whether to create RGBA textures.Fields inherited from class com.openinventor.volumeviz.nodes.SoVolumeShape
composition, interpolation
Fields inherited from class com.openinventor.inventor.nodes.SoShape
boundingBoxIgnoring
Fields inherited from class com.openinventor.inventor.Inventor
VERBOSE_LEVEL, ZeroHandle
-
Method Summary
Methods inherited from class com.openinventor.volumeviz.nodes.SoVolumeShape
setRenderProgress
Methods inherited from class com.openinventor.inventor.nodes.SoShape
getShapeType, isPrimitiveRestartAvailable, isPrimitiveRestartAvailable
Methods inherited from class com.openinventor.inventor.nodes.SoNode
affectsState, callback, copy, copy, distribute, doAction, getAlternateRep, getBoundingBox, getByName, getMatrix, getPrimitiveCount, getRenderEngineMode, getRenderUnitID, GLRender, GLRenderBelowPath, GLRenderInPath, GLRenderOffPath, grabEventsCleanup, grabEventsSetup, handleEvent, isBoundingBoxIgnoring, isOverride, pick, rayPick, search, setOverride, touch, write
Methods inherited from class com.openinventor.inventor.fields.SoFieldContainer
copyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaults
Methods inherited from class com.openinventor.inventor.misc.SoBase
dispose, getName, isDisposable, isSynchronizable, setName, setSynchronizable
Methods inherited from class com.openinventor.inventor.Inventor
getNativeResourceHandle
-
Field Details
-
enableBumpMapping
Specifies if a bump mapping effect will be applied to the slice. Default is false. Bump mapping is a rendering effect that simulates displacement of the slice surface using the gradient vectors (computed on the GPU) as normal vectors. Normally lighting should be enabled to maximize the visual effect of bump mapping.This mode requires a graphics card supporting the OpenGL GLSL shading language. If your graphics card does not have the necessary support, the slice will be rendered without bump mapping.
Bump mapping is not available for the
SoHeightFieldRender
node.- Since:
- Open Inventor 6.0
-
bumpScale
Specifies the intensity of the bump mapping effect. Default value is 1.0. Valid values range from 0 (no bump mapping) to no upper limit. (50 is a fairly large value.)- Since:
- Open Inventor 6.0
-
alternateRep
This field optionally holds a subgraph containing only core Open Inventor nodes that can be used for rendering when VolumeViz is not available. For example, the alternate representation for anSoOrthoSlice
could be a small scene graph containing anSoTexture2
and anSoIndexedFaceSet
. Such a scene graph could be converted and exported as a PDF3D file. Default is NULL. But an alternateRep scene graph is automatically created during a write action if SoVolumeRendering.setWriteAlternateRep(true) was called.- Since:
- Open Inventor 4.0
-
alphaUse
Specifies how to use the alpha component of each voxel's RGBA value. . Default is ALPHA_OPAQUE.Compatibility Note: The default value changed with the release of Open Inventor version 10. In previous versions the default value was ALPHA_BINARY.
The alpha component will typically come from the transfer function, but (since Open Inventor 8.5) could come from direct rendering of an RGBA volume. The alpha values used for rendering the slice will vary depending on the value of this field.
The following table shows how the alpha value is computed according to this field and the incoming voxel alpha values:
When alphaUse field is: ALPHA_BINARY ALPHA_OPAQUE ALPHA_AS_IS Incoming Alpha value Alpha Value Actually Used = 0 0 (Invisible) 1 (Opaque) 0 (Invisible) > 0 1 (Opaque) 1 (Opaque) same as incoming Note that this field only affects alpha values coming from the transfer function or an RGBA volume. Global transparency assigned by an
SoMaterial
node is not affected. -
useRGBA
Specifies whether to create RGBA textures. Default is false. If useRGBA is false, indexed textures will be used if the graphics board supports them. If useRGBA is true, RGBA textures will be used instead of indexed textures. RGBA textures allow higher precision but are slower to load and use more texture memory.<font color="#0000FF">NOTE:</font> If the dataSet is RGBA then this field is ignored and RGBA textures are used.
- Since:
- Open Inventor 5.0
-
largeSliceSupport
Activate/deactivate direct loading of full resolution slice data. Default is false. When true, if all the required full resolution tiles have already been loaded, then the slice data is taken from LDM system memory cache as usual. But if some required tiles are not currently in memory, the required slice data will be loaded directly from the volume reader without loading the complete tiles. This reduces disk I/O and reduces the amount of system memory required to display the slice at full resolution, so larger (or more) slices can be displayed. The required tiles are then scheduled to be loaded asynchronously in case adjacent slices are displayed later. For example, loading a 1024x1024SoOrthoSlice
from an 8-bit dataset with 128x128x128 tiles would normally require loading 1024x1024x128 bytes of data (as complete tiles). With largeSliceSupport enabled, only 1024x1024 bytes (maximum) of data need to be loaded (in the worst case where no high resolution data is currently in memory).- Since:
- Open Inventor 8.0 Limitations :
- This feature is only available for
SoOrthoSlice
andSoVolumeSkin
. - This feature can only be enabled for volumes loaded from an LDM format file, i.e. using the reader class
SoVRLdmFileReader
.
- This feature is only available for
-