instantreality 1.0

Component:
VolumeRendering
Status:
partly implemented
Structure type:
concrete
Standard:
X3D

ShadedVolumeStyle

The shaded volume style applies traditional local illumination model that is used in polygonal rendering to volume rendering. In this style, the source voxel value ignored other than to determine if it is a surface that needs to be shaded or not and the normal at that surface. Typically this style is used combined with the ISOSurfaceVolumeData to extract surfaces from the data and render each surface with a different colour. Determination of whether the voxel should be shaded using this model is the responsibility of the volume data definition.

Inheritance

Code

XML encoding
<ShadedVolumeStyle lighting='FALSE'
shadows='FALSE'
phaseFunction='Henyey-Greenstein'
enabled='TRUE'
logFeature=''
 />
Classic encoding
ShadedVolumeStyle {
	lighting FALSE
	shadows FALSE
	phaseFunction "Henyey-Greenstein"
	enabled TRUE
	logFeature [""]
}

Interface

Filter: X3D only | Avalon only | All
id Name DataType PartType Default ValueType Description
SFNode material SFNode inputOutput NULL Material Once a voxel has been determined to be a rendered, a colour and opacity is determined based on whether a value has been specified for the material field. If a material value is provided, this voxel is considered to be lit using the lighting equations below. If no material node is provided, it is considered to be unlit and the colour of the voxel completely transparent.
SFBool lighting SFBool inputOutput FALSE The lighting field controls whether the rendering should calculate and apply shading effects to the visual output. When shading is applied, the value of the surfaceNormals field can be used to provide pre-generated surface normals for lighting calculations. If lighting is not enabled, then flat shading using the surface colour is to be used.
SFBool shadows SFBool inputOutput FALSE The shadows field controls whether the rendering should calculate and apply shadows to the visual output. A value of FALSE requires that no shadowing be applied. A value of TRUE requires that shadows be applied to the object. If the lighting field is set to FALSE, this field shall be ignore and no shadows generated.
SFString phaseFunction SFString initializeOnly Henyey-Greenstein [None, Henyey-Greenstein] The phaseFunction field is used to define the scattering model for use in an implementation using global illumnation. The name defines the model type, based on standard algorithms externally defined to this specification. The default implementation is the Henyey-Greenstein phase function.
SFNode surfaceNormals SFNode inputOutput NULL [Texture] The surfaceNormals field is used to provide pre-calculated surface normal information for each voxel. If provided, this shall be used for all lighting calculations. If not provided, the implementation shall automatically generate surface normals using an implementation-specific method. If a value is provided, it shall be exactly the same voxel dimensions as the base volume data that it represents. If the dimension are not identical then the browser shall generate a warning and automatically generate its own internal normals as though no value was provided for this field.
SFBool enabled SFBool inputOutput TRUE The enabled field defines whether this rendering style should be currently applied to the volume data. If the field is set to FALSE, then the rendering shall not be applied at all. The render shall act as though no volume data is rendered when set to FALSE. Effectively, this allows the end user to turn on and off volume rendering of specific parts of the volume without needing to add or remove style definitions from the volume data node.
MFString logFeature MFString inputOutput state, child, parent, route, eventIn, eventOut controls the logging of changes, state: log state changes (e.g. live), child: log child add/remove, parent: log parent add/remove, route: log route add/remove; eventIn: log receiving of events, eventOut: log sending of events: guiView, runtime system should create node-view, guiEdit: runtime system should create node-editeverything: log everything
SFNode metadata SFNode inputOutput MetadataObject container for payload metadata inside MetadataSet element