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,SoVolumeSkinandSoHeightFieldRendernodes.The
alphaUsefield controls how the voxel's alpha component is used when drawing the slice.The
enableBumpMappingandbumpScalefields 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
largeSliceSupportfield 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 classSoSlice.AlphaUsesAlpha component usage mode Used in thealphaUsefield.-
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>alphaUseSpecifies how to use the alpha component of each voxel's RGBA value.SoSFNodealternateRepThis field optionally holds a subgraph containing only core Open Inventor nodes that can be used for rendering when VolumeViz is not available.SoSFFloatbumpScaleSpecifies the intensity of the bump mapping effect.SoSFBoolenableBumpMappingSpecifies if a bump mapping effect will be applied to the slice.SoSFBoollargeSliceSupportActivate/deactivate direct loading of full resolution slice data.SoSFBooluseRGBASpecifies 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.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
SoHeightFieldRendernode.- 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 anSoOrthoSlicecould be a small scene graph containing anSoTexture2and 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
SoMaterialnode 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 1024x1024SoOrthoSlicefrom 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
SoOrthoSliceandSoVolumeSkin. - 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
-
-