IsoSurfaceVolumeData displays one or more surfaces extracted from a voxel dataset. A surface is defined as the boundary between regions in the volume where the voxel values are larger than a given value (the iso value) on one side of the boundary and smaller on the other side, and the gradient magnitude is larger than surfaceTolerance.
The IsoSurfaceVolumeData node belongs to the VolumeRendering component and its container field is children. It is available since X3D version 3.3 or later.
SFFloat [in, out] contourStepSize (-∞,∞)
If contourStepSize is non-zero, also render all isosurfaces that are multiples of that step size from initial surface value.
ContourStepSize can be negative so that steppping can proceed in a negative direction.
SFVec3f [in, out] dimensions 1 1 1 (0,∞)
Actual-size X-Y-Z dimensions of volume data in local coordinate system.
SFNode [in, out] gradients NULL [X3DTexture3DNode]
Input/Output field gradients.
SFNode [in, out] metadata NULL [X3DMetadataObject]
Metadata are not part of the X3D world and not interpreted by the X3D browser, but they can be accessed via the ECMAScript interface.
MFNode [in, out] renderStyle [ ] [X3DVolumeRenderStyleNode]
Input/Output field renderStyle.
SFFloat [in, out] surfaceTolerance [0,∞)
Threshold for gradient magnitude for voxel inolusion in isosurface.
Contained Texture3D node with containerField='gradients' can provide explicit per-voxel gradient direction information for determining surface boundaries.
MFFloat [in, out] surfaceValues [ ] (-∞,∞)
If surfaceValues has one value defined, render corresponding isosurface plus any isosurfaces based on contourStepSize. If surfaceValues has more than one value defined, ignore contourStepSize and render surfaces corresponding to listed surfaceValues.
SFNode [in, out] voxels NULL [X3DTexture3DNode]
Input/Output field voxels.
SFVec3f [ ] bboxCenter 0 0 0 (-∞,∞)
Bounding box center: optional hint for position offset from origin of local coordinate system.
SFVec3f [ ] bboxSize -1 -1 -1 [0,∞) or -1 -1 -1
Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.
Can be useful for collision computations or inverse-kinematics (IK) engines.
- IsoSurfaceVolumeData can contain a single Texture3D node with containerField='gradients' that is used to provide explicit per-voxel gradient direction information for determining surface boundaries, rather than having values implicitly calculated by the implementation.
- IsoSurfaceVolumeData can contain another Texture3D node with containerField='voxels' containing voxel data.
- IsoSurfaceVolumeData can contain multiple VolumeStyle nodes.