Class SoSlice
- java.lang.Object
-
- All Implemented Interfaces:
SafeDisposable
- Direct Known Subclasses:
SoFenceSlice
,SoHeightFieldRender
,SoObliqueSlice
,SoOrthoSlice
,SoVolumeSkin
public abstract class SoSlice extends SoVolumeShape
Abstract base class for slice shape nodes. This class defines common properties for theSoOrthoSlice
,SoObliqueSlice
,SoFenceSlice
,SoVolumeSkin
andSoHeightFieldRender
nodes.The
alphaUse
field controls how the voxel's alpha component is used when drawing the slice.The
enableBumpMapping
andbumpScale
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:
SoObliqueSlice
,SoOrthoSlice
,SoFenceSlice
,SoVolumeSkin
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SoSlice.AlphaUses
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
Fields Modifier and Type Field Description SoSFEnum<SoSlice.AlphaUses>
alphaUse
Specifies how to use the alpha component of each voxel's RGBA value.SoSFNode
alternateRep
This field optionally holds a subgraph containing only core Open Inventor nodes that can be used for rendering when VolumeViz is not available.SoSFFloat
bumpScale
Specifies the intensity of the bump mapping effect.SoSFBool
enableBumpMapping
Specifies if a bump mapping effect will be applied to the slice.SoSFBool
largeSliceSupport
Activate/deactivate direct loading of full resolution slice data.SoSFBool
useRGBA
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 Detail
-
enableBumpMapping
public final SoSFBool 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
public final SoSFFloat 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
public final SoSFNode 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
public final SoSFEnum<SoSlice.AlphaUses> 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
public final SoSFBool 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
public final SoSFBool 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
-
-