SoVolumeIsosurface Class |
Isosurface property node.
Namespace: OIV.VolumeViz.Nodes
The SoVolumeIsosurface type exposes the following members.
Name | Description | |
---|---|---|
SoVolumeIsosurface | Constructor. |
Name | Description | |
---|---|---|
AddShaderParameterImage | Convenience method to create an OIV.Inventor.Nodes.SoShaderParameterImage with the specified name and value and add it to this shader program. | |
AffectsState | Returns true if a node has an effect on the state during traversal. | |
Callback | (Inherited from SoNode.) | |
Copy | Calls Copy(false). (Inherited from SoNode.) | |
Copy(Boolean) | Creates and returns an exact copy of the node. | |
CopyFieldValues(SoFieldContainer) | Calls CopyFieldValues(fc, false). (Inherited from SoFieldContainer.) | |
CopyFieldValues(SoFieldContainer, Boolean) | Copies the contents of fc's fields into this object's fields. | |
Dispose |
Releases all resources used by SoDisposable.
(Inherited from SoDisposable.) | |
Distribute | (Inherited from SoNode.) | |
DoAction | (Inherited from SoShaderProgram.) | |
EnableNotify | Notification at this Field Container is enabled (if flag == true) or disabled (if flag == false). | |
Equals | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) | |
FieldsAreEqual | Returns true if this object's fields are exactly equal to fc's fields. | |
Get | Returns the values of the fields of this object in the Open Inventor ASCII file format in the given string. | |
GetAllFields | Returns a list of fields, including the eventIn's and eventOut's. | |
GetAlternateRep | This method is called by actions to allow the node to provide an "alternate representation" when appropriate (typically depending on the action type). | |
GetBoundingBox | (Inherited from SoShaderProgram.) | |
GetEventIn | Returns a the eventIn with the given name. | |
GetEventOut | Returns the eventOut with the given name. | |
GetField | Returns a the field of this object whose name is fieldName. | |
GetFieldName | Returns the name of the given field in the fieldName argument. | |
GetFields | Appends references to all of this object's fields to resultList, and returns the number of fields appended. | |
GetFragmentShader | Returns the fragment shader at the specified position. | |
GetGeometryShader | Returns the geometry shader at the specified position. | |
GetHashCode |
Overrides GetHashCode().
(Inherited from SoNetBase.) | |
GetMatrix | (Inherited from SoNode.) | |
GetName | Returns the name of an instance. | |
GetPrimitiveCount | (Inherited from SoNode.) | |
GetRenderEngineMode | Returns the supported Render engine mode. | |
GetRenderUnitID | (Inherited from SoNode.) | |
GetStringName | (Inherited from SoBase.) | |
GetTessellationControlShader | Returns the tessellation control shader at the specified position. | |
GetTessellationEvaluationShader | Returns the tessellation evaluation shader at the specified position. | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
GetVertexShader | Returns the vertex shader at the specified position. | |
GLRender | (Inherited from SoShaderProgram.) | |
GLRenderBelowPath | (Inherited from SoNode.) | |
GLRenderInPath | (Inherited from SoNode.) | |
GLRenderOffPath | (Inherited from SoNode.) | |
GrabEventsCleanup | (Inherited from SoNode.) | |
GrabEventsSetup | (Inherited from SoNode.) | |
HandleEvent | (Inherited from SoNode.) | |
HasDefaultValues | Returns true if all of the object's fields have their default values. | |
IsBoundingBoxIgnoring | This method is used by getBoundingBox action traversal to know if the current node must be traversed or not, ie the bounding should be ignored. | |
IsNotifyEnabled | Notification is the process of telling interested objects that this object has changed. | |
IsOverride | Returns the state of the override flag. | |
IsSynchronizable | Gets the ScaleViz synchronizable state of this object. | |
Pick | (Inherited from SoShaderProgram.) | |
RayPick | (Inherited from SoNode.) | |
Search | (Inherited from SoNode.) | |
Set | Sets one or more fields in this object to the values specified in the given string, which should be a string in the Open Inventor file format. | |
SetComputeShader(Int32, String) | Calls SetComputeShader(pos, filenameOrSource, OIV.Inventor.Nodes.SoShaderObject.SourceTypes( .SoShaderObject.FILENAME )). (Inherited from SoShaderProgram.) | |
SetComputeShader(Int32, String, SoShaderObjectSourceTypes) | Convenience method to create a compute shader with the specified filename and add it at the specified position. | |
SetFragmentShader(Int32, String) | Calls SetFragmentShader(pos, filenameOrSource, OIV.Inventor.Nodes.SoShaderObject.SourceTypes( .SoShaderObject.FILENAME )). (Inherited from SoVolumeShader.) | |
SetFragmentShader(Int32, String, SoShaderObjectSourceTypes) | Creates a fragment shader with the given filename and add it at the given pos. | |
SetGeometryShader(Int32, String) | Calls SetGeometryShader(pos, filenameOrSource, OIV.Inventor.Nodes.SoShaderObject.SourceTypes( .SoShaderObject.FILENAME )). (Inherited from SoShaderProgram.) | |
SetGeometryShader(Int32, String, SoShaderObjectSourceTypes) | Convenience method to create a geometry shader with the specified filename and add it at the specified position. | |
SetName | (Inherited from SoBase.) | |
SetOverride | Turns the override flag on or off. | |
SetSynchronizable | Sets this to be a ScaleViz synchronizable object. | |
SetTessellationControlShader(Int32, String) | Calls SetTessellationControlShader(pos, filenameOrSource, OIV.Inventor.Nodes.SoShaderObject.SourceTypes( .SoShaderObject.FILENAME )). (Inherited from SoShaderProgram.) | |
SetTessellationControlShader(Int32, String, SoShaderObjectSourceTypes) | Convenience method to create a tessellation control shader with the specified filename and add it at the specified position. | |
SetTessellationEvaluationShader(Int32, String) | Calls SetTessellationEvaluationShader(pos, filenameOrSource, OIV.Inventor.Nodes.SoShaderObject.SourceTypes( .SoShaderObject.FILENAME )). (Inherited from SoShaderProgram.) | |
SetTessellationEvaluationShader(Int32, String, SoShaderObjectSourceTypes) | Convenience method to create a tessellation evaluation shader with the specified filename and add it at the specified position. | |
SetToDefaults | Sets all fields in this object to their default values. | |
SetVertexShader(Int32, String) | Calls SetVertexShader(pos, filenameOrSource, OIV.Inventor.Nodes.SoShaderObject.SourceTypes( .SoShaderObject.FILENAME )). (Inherited from SoVolumeShader.) | |
SetVertexShader(Int32, String, SoShaderObjectSourceTypes) | Creates a vertex shader with the given filename and adds it at the given pos. | |
ToString |
Converts this SoBase structure to a human readable string.
(Inherited from SoBase.) | |
Touch | Marks an instance as modified, simulating a change to it. | |
Write | (Inherited from SoNode.) |
Name | Description | |
---|---|---|
bufferObjects | Specifies a list of OIV.Inventor.Nodes.SoShaderParameterBufferObject to use with this shader. | |
forVolumeOnly | Set to true if the shader should be called for volume rendering (OIV.VolumeViz.Nodes.SoVolumeRender). | |
generateTransparency | If set to true, then shapes affected by this shader will be considered transparent. | |
geometryInputType | Specifies the input primitive type of the current geometry shader if any (not used otherwise). | |
geometryOutputType | Specifies the output primitive type of the current geometry shader if any (not used otherwise). | |
images | Specifies a list of OIV.Inventor.Nodes.SoShaderParameterImage nodes to use with this shader. | |
interpolateOnMove | When set to false, interpolation between LDM tiles (across the tile boundary) is not done when rendering in interactive mode. | |
IsDisposable | ISafeDisposable interface implementation.
(Inherited from SoDisposable.) | |
isovalues | Specifies the list of isovalues to display. | |
maxGeometryOutputVertices | Set the maximum number of vertices the geometry shader will emit in one invocation. | |
patchLength | Set the length of the fixed-size collection of vertices used by tessellation shaders. | |
shaderObject | Specifies the list of shader objects (i.e., vertex shaders, geometry and fragment shaders) which form the shader program. | |
shadowShader | Only used when an OIV.Inventor.Nodes.SoShadowGroup is active. | |
UserData |
Gets or sets the user data to be contained by the field container.
(Inherited from SoFieldContainer.) | |
vertexProgramTwoSide | If set to true, vertex shaders will operate in two-sided color mode. |
This property node causes subsequent OIV.VolumeViz.Nodes.SoVolumeRender nodes to draw isosurfaces instead of classical volume rendering of the volume data defined by the current OIV.VolumeViz.Nodes.SoVolumeData.
This is functionally equivalent to using an OIV.VolumeViz.Nodes.SoVolumeDataDrawStyle node with the style field set to ISOSURFACE, but is much simpler when you only need to display an iso surface.
The isosurfaces are only rendered, not geometrically computed. So it is not possible to directly get the geometry corresponding to the rendered isosurface. (The MeshViz extension includes algorithms to extract an isosurface as geometry, see MoMeshIsosurface.)
The isovalues to display are specified in the OIV.VolumeViz.Nodes.SoVolumeIsosurface.isovalues field.
You may not use both OIV.VolumeViz.Nodes.SoVolumeShader and OIV.VolumeViz.Nodes.SoVolumeIsosurface with the same OIV.VolumeViz.Nodes.SoVolumeRender node. However since Open Inventor 7.1 it is possible to use both OIV.VolumeViz.Nodes.SoVolumeRenderingQuality and OIV.VolumeViz.Nodes.SoVolumeIsosurface with OIV.VolumeViz.Nodes.SoVolumeRender.
Remember this is a shader node. The effect will usually be undesirable if it is applied to standard geometry (polygons, lines, etc). Therefore applications should generally keep the volume visualization nodes and standard geometry nodes separate in the scene graph (i.e. under different OIV.Inventor.Nodes.SoSeparator nodes).
The multiple fields OIV.Inventor.Nodes.SoMaterial.diffuseColor, OIV.Inventor.Nodes.SoMaterial.transparency, OIV.Inventor.Nodes.SoMaterial.specularColor, and OIV.Inventor.Nodes.SoMaterial.shininess of the current OIV.Inventor.Nodes.SoMaterial specify the material of each isosurface. All isosurfaces share the first OIV.Inventor.Nodes.SoMaterial.specularColor and OIV.Inventor.Nodes.SoMaterial.shininess. The first material will be for the first isosurface, the second material for the second isosurface, and so on.
Surfaces are lighted with the first directional light found in the scene graph. No other lights affect the isosurface. Note: The isosurfaces are always lighted, regardless of the value of the OIV.VolumeViz.Nodes.SoVolumeRenderingQuality lighting and deferredLighting fields.
The isosurface displays the boundary between 2 different values, similar to the marching cubes algorithms. In other words, a voxel is part of the isosurface if the ray entry and exit values for the voxel are different and include the specified isosurface value in their range. If you render, for example, the isosurface 100 of a volume data containing the value 100 everywhere, nothing will be rendered.
Because of linear interpolation, basic isosurface may not render correctly on segmented dataset like label field. In this case, you should use the OIV.VolumeViz.Nodes.SoVolumeRenderingQuality.segmentedInterpolation or OIV.VolumeViz.Nodes.SoVolumeRenderingQuality.colorInterpolation fields. Default Linear interpolation may also generate rough result even for scalar datasets. For a smoother surface, you may have to use cubic interpolation. Please refer to OIV.VolumeViz.Nodes.SoVolumeShape.interpolation for details.
Because this node is derived from OIV.VolumeViz.Nodes.SoVolumeShader, IVVR_FIRST_RESERVED_TEXTURE_UNIT applies to it. See OIV.VolumeViz.Nodes.SoVolumeShader for more information.
Note: The volume size and orientation (like geometry) can be modified by transformation nodes in the scene graph and this in turn modifies the appearance of volume rendering nodes like OIV.VolumeViz.Nodes.SoVolumeIsosurface. However the same transformation must be applied to the volume data node and all volume rendering nodes associated with that volume. So effectively any transformation nodes that affect the volume must be placed before the volume data node.
VolumeIsosurface {
isovalues | [] |
OIV.Inventor.Actions.SoGLRenderAction Sets volume isosurface parameters in the traversal state.