Open Inventor Release 2024.1.0
 
Loading...
Searching...
No Matches
SoVolumeRenderingPhysicalQuality Class Reference

VolumeViz Volume rendering physical quality property node More...

#include <VolumeViz/nodes/SoVolumeRenderingPhysicalQuality.h>

+ Inheritance diagram for SoVolumeRenderingPhysicalQuality:

Public Types

enum  ShadowsStyle {
  SHADOWMAP ,
  RAYTRACED
}
 List of available types of shadows. More...
 
enum  ShadingStyle {
  PHONG ,
  PHYSICALLY_BASED
}
 List of available shading styles. More...
 
enum  EnvironmentMap {
  SKY ,
  GROVE ,
  STPETER ,
  GRACE ,
  UFFIZI ,
  STLAZARUS ,
  NO_ENVIRONMENT
}
 List of available Environment Maps for Physically Based Lighting. More...
 
enum  ToneMapping {
  PALE ,
  MEDIUM ,
  HIGH_CONTRAST
}
 List of available Tone Mapping algorithms for Physically Based Lighting. More...
 
enum  PredefinedMaterial {
  MATTE ,
  SEMI_GLOSSY ,
  GLOSSY ,
  CUSTOM_MATERIAL
}
 List of available predefined materials. More...
 

Public Member Functions

virtual SoType getTypeId () const
 Returns the type identifier for this specific instance.
 
 SoVolumeRenderingPhysicalQuality ()
 
- Public Member Functions inherited from SoNode
virtual void setOverride (const SbBool state)
 Turns the override flag on or off.
 
virtual SbBool isOverride () const
 Returns the state of the override flag.
 
virtual SoNodecopy (SbBool copyConnections=FALSE) const
 Creates and returns an exact copy of the node.
 
virtual SbBool affectsState () const
 Returns TRUE if a node has an effect on the state during traversal.
 
virtual void touch ()
 Marks an instance as modified, simulating a change to it.
 
- Public Member Functions inherited from SoFieldContainer
void setToDefaults ()
 Sets all fields in this object to their default values.
 
SbBool hasDefaultValues () const
 Returns TRUE if all of the object's fields have their default values.
 
SbBool fieldsAreEqual (const SoFieldContainer *fc) const
 Returns TRUE if this object's fields are exactly equal to fc's fields.
 
void copyFieldValues (const SoFieldContainer *fc, SbBool copyConnections=FALSE)
 Copies the contents of fc's fields into this object's fields.
 
SoNONUNICODE SbBool set (const char *fieldDataString)
 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.
 
SbBool set (const SbString &fieldDataString)
 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.
 
void get (SbString &fieldDataString)
 Returns the values of the fields of this object in the Open Inventor ASCII file format in the given string.
 
virtual int getFields (SoFieldList &list) const
 Appends references to all of this object's fields to resultList, and returns the number of fields appended.
 
virtual int getAllFields (SoFieldList &list) const
 Returns a list of fields, including the eventIn's and eventOut's.
 
virtual SoFieldgetField (const SbName &fieldName) const
 Returns a the field of this object whose name is fieldName.
 
virtual SoFieldgetEventIn (const SbName &fieldName) const
 Returns a the eventIn with the given name.
 
virtual SoFieldgetEventOut (const SbName &fieldName) const
 Returns the eventOut with the given name.
 
SbBool getFieldName (const SoField *field, SbName &fieldName) const
 Returns the name of the given field in the fieldName argument.
 
SbBool enableNotify (SbBool flag)
 Notification at this Field Container is enabled (if flag == TRUE) or disabled (if flag == FALSE).
 
SbBool isNotifyEnabled () const
 Notification is the process of telling interested objects that this object has changed.
 
virtual void setUserData (void *data)
 Sets application data.
 
void * getUserData (void) const
 Gets user application data.
 
- Public Member Functions inherited from SoBase
virtual SbName getName () const
 Returns the name of an instance.
 
virtual void setName (const SbName &name)
 Sets the name of an instance.
 
void setSynchronizable (const bool b)
 Sets this to be a ScaleViz synchronizable object.
 
bool isSynchronizable () const
 Gets the ScaleViz synchronizable state of this object.
 
- Public Member Functions inherited from SoRefCounter
void ref () const
 Adds a reference to an instance.
 
void unref () const
 Removes a reference from an instance.
 
void unrefNoDelete () const
 unrefNoDelete() should be called when it is desired to decrement the reference count, but not delete the instance if this brings the reference count to zero.
 
int getRefCount () const
 Returns current reference count.
 
void lock () const
 lock this instance.
 
void unlock () const
 unlock this instance.
 
- Public Member Functions inherited from SoTypedObject
SbBool isOfType (const SoType &type) const
 Returns TRUE if this object is of the type specified in type or is derived from that type.
 
template<typename TypedObjectClass >
SbBool isOfType () const
 Returns TRUE if this object is of the type of class TypedObjectClass or is derived from that class.
 

Static Public Member Functions

static SoType getClassTypeId ()
 Returns the type identifier for this class.
 
- Static Public Member Functions inherited from SoNode
static SoType getClassTypeId ()
 Returns the type identifier for this class.
 
static SoNodegetByName (const SbName &name)
 A node's name can be set using SoBase::setName().
 
static int getByName (const SbName &name, SoNodeList &list)
 A node's name can be set using SoBase::setName().
 
- Static Public Member Functions inherited from SoFieldContainer
static SoType getClassTypeId ()
 Returns the type of this class.
 
- Static Public Member Functions inherited from SoBase
static SoType getClassTypeId ()
 Returns type identifier for this class.
 
- Static Public Member Functions inherited from SoTypedObject
static SoType getClassTypeId ()
 Returns the type identifier for this class.
 

Public Attributes

SoSFEnum shadowsStyle
 Specifies which kind of shadows to compute for the volume.
 
SoSFEnum shadingStyle
 Specifies which shading style is applied to the volume.
 
SoSFEnum predefinedMaterial
 Specifies a material from a list of predefined ones.
 
SoSFEnum environmentMap
 Specifies which Environment map is used.
 
SoSFEnum toneMapping
 Specifies which tone mapping algorithm to apply.
 
SoSFBool enableDepthOfField
 Enables a 'Depth of Field' effect on the volume.
 
SoSFFloat blurFactor
 This value controls the intensity of the blurring for the Depth Of Field effect.
 

Detailed Description

VolumeViz Volume rendering physical quality property node

This node is intended to be used when one wants to achieve "out of the box" high quality volume rendering. It works the same way as a SoVolumeRenderingQuality node, in the sense that it causes subsequent SoVolumeRender nodes to be drawn with different rendering effects and/or levels of quality, the difference being that the SoVolumeRenderingQuality fields are not exposed in this node and are internally pre-selected to provide the highest possible quality:

The SoVolumeRenderingQuality fields that are internally activated are:

The presence of this node in the scene graph also forces subsequent SoVolumeRender nodes to be drawn with SoVolumeRender::samplingAlignment set to SoVolumeRender::BOUNDARY_ALIGNED.

Note that, unlike SoVolumeRenderingQuality, this node does not support customization of VolumeViz shaders.

The fields exposed in this node provide control over effects that are not present in the SoVolumeRenderingQuality node. These effects include:

  • Physically Based Lighting
  • Ray-Traced Shadows
  • Depth of Field

Physically Based Lighting

The Physically Based Lighting effect provides lighting using an advanced BRDF model. It can be seen as an enhanced version of the regular deferred lighting. In particular, it shows the same behavior regarding the current SoPhysicalMaterial or SoMaterial on the state and has the same limitations. See SoVolumeRenderingQuality::deferredLighting for a detailed list of limitations. In addition to regular deferred lighting, this effect supports HDR environment mapping and several cubemap textures are provided (see environmentMap). The field toneMapping is provided to select the Tone Mapping algorithm used to remap HDR values to low range values. A predefined material that will be applied to the shape can also be selected using the field predefinedMaterial. Any material (SoPhysicalMaterial or SoMaterial) set between this node and the SoVolumeRender node in the scenegraph will override this predefined material. Note that, just like with regular deferred lighting, the material properties will affect the lighting, and the base color will be mixed with the voxel colors using a component-wise multiplication. Finally, the field shadingStyle allows to switch between this type of lighting and regular deferred lighting.

Ray-Traced Shadows

The Ray-Traced Shadows effect computes shadows inside the volume using a ray-marching based algorithm. This effect is activated and parameterized just like regular shadows using the SoShadowGroup node. The SoShadowGroup fields taken into account for this effect are SoShadowGroup::isActive, SoShadowGroup::intensity and SoShadowGroup::quality. This type of shadows supports SoROI clipping, but does not support SoClipPlane, SoVolumeClippingGroup, SoUniformGridClipping or SoUniformGridProjectionClipping. Note that this effect has a huge impact on performance. The field shadowsStyle allows to switch between this type of shadows and regular shadows.

Depth of Field

Depth Of Field is a "cinematic" effect that adds blur on regions far from the focal point of the camera. The focal point is typically the center of the scene bounding box, causing regions close to the camera and far from the camera to be blurred. The focal point is specified by the field SoCamera::focalDistance of the current camera. Only SoVolumeRender nodes are affected by the blurring. The field enableDepthOfField is used to switch it on and off, while the blurFactor field controls the amount of blur induced by this effect.

FILE FORMAT/DEFAULT

SEE ALSO

SoVolumeRenderingQuality, SoShadowGroup

NOTE: node available since Open Inventor 9.8

Definition at line 121 of file SoVolumeRenderingPhysicalQuality.h.

Member Enumeration Documentation

◆ EnvironmentMap

List of available Environment Maps for Physically Based Lighting.

Enumerator
SKY 
GROVE 
STPETER 
GRACE 
UFFIZI 
STLAZARUS 
NO_ENVIRONMENT 

When this value is selected, image-based lighting is disabled.

Definition at line 257 of file SoVolumeRenderingPhysicalQuality.h.

◆ PredefinedMaterial

List of available predefined materials.

Enumerator
MATTE 

ambient: (0.5, 0.5, 0.5) diffuse: (0.8, 0.8, 0.8) specular: (0.25, 0.25, 0.25) shininess: 0.4 Environment Map: GROVE Tone Mapping: PALE

SEMI_GLOSSY 

ambient: (0.5, 0.5, 0.5) diffuse: (0.8, 0.8, 0.8) specular: (0.06, 0.06, 0.06) shininess: 0.7 Environment Map: STLAZARUS Tone Mapping: PALE

GLOSSY 

ambient: (0.5, 0.5, 0.5) diffuse: (1.0, 1.0, 1.0) specular: (0.25, 0.25, 0.25) shininess: 0.9 Environment Map: STPETER Tone Mapping: MEDIUM

CUSTOM_MATERIAL 

When this value is selected, the applied material will get its properties from the current material on the state.

Definition at line 306 of file SoVolumeRenderingPhysicalQuality.h.

◆ ShadingStyle

List of available shading styles.

Enumerator
PHONG 

Phong shading.

This is the regular lighting provided by the field SoVolumeRenderingQuality::deferredLighting.

PHYSICALLY_BASED 

Physically-Based shading.

This is the advanced lighting that provides:

  • A complex BRDF model
  • Image-based lighting
  • Tone mapping.

This shading style can be seen as an enhanced version of the regular deferred lighting. In particular, it shows the same behavior regarding the current SoMaterial on the state and has the same limitations. See SoVolumeRenderingQuality::deferredLighting for a detailed list of limitations.

Definition at line 232 of file SoVolumeRenderingPhysicalQuality.h.

◆ ShadowsStyle

List of available types of shadows.

Enumerator
SHADOWMAP 

The standard shadowmap-based shadows.

See SoShadowGroup.

RAYTRACED 

Shadows using a ray-marching based algorithm.

This type provides high quality shadows, but can have a big impact on performance. It supports SoROI clipping, but does not support SoClipPlane, SoVolumeClippingGroup, SoUniformGridClipping or SoUniformGridProjectionClipping.

Definition at line 212 of file SoVolumeRenderingPhysicalQuality.h.

◆ ToneMapping

List of available Tone Mapping algorithms for Physically Based Lighting.

Enumerator
PALE 

Pale Tone Mapping.

MEDIUM 

Medium Tone Mapping.

HIGH_CONTRAST 

High-contrast Tone Mapping.

Definition at line 291 of file SoVolumeRenderingPhysicalQuality.h.

Constructor & Destructor Documentation

◆ SoVolumeRenderingPhysicalQuality()

SoVolumeRenderingPhysicalQuality::SoVolumeRenderingPhysicalQuality ( )

Member Function Documentation

◆ getClassTypeId()

static SoType SoVolumeRenderingPhysicalQuality::getClassTypeId ( )
static

Returns the type identifier for this class.


◆ getTypeId()

virtual SoType SoVolumeRenderingPhysicalQuality::getTypeId ( ) const
virtual

Returns the type identifier for this specific instance.

Reimplemented from SoNode.

Member Data Documentation

◆ blurFactor

SoSFFloat SoVolumeRenderingPhysicalQuality::blurFactor

This value controls the intensity of the blurring for the Depth Of Field effect.

The physical value associated with this parameter is the camera's lens aperture. Bigger values induce a shallower depth of field. Default is 0.01.

Definition at line 204 of file SoVolumeRenderingPhysicalQuality.h.

◆ enableDepthOfField

SoSFBool SoVolumeRenderingPhysicalQuality::enableDepthOfField

Enables a 'Depth of Field' effect on the volume.

This effect blurs everything outside of the depth of field area, but keeps everything inside sharp. This effect is particularly useful to highlight a specific zone of a volume.

The focal point is controlled by the field SoCamera::focalDistance of the current camera. Only VolumeRender nodes are affected by the blurring. The amount of blurring applied is controlled by the blurFactor field. Default is TRUE.

Definition at line 196 of file SoVolumeRenderingPhysicalQuality.h.

◆ environmentMap

SoSFEnum SoVolumeRenderingPhysicalQuality::environmentMap

Specifies which Environment map is used.

This field is taken into account only if shadingStyle is set to PHYSICALLY_BASED and if predefinedMaterial is set to CUSTOM_MATERIAL. The available environment maps are HDR cubemap textures that will be used to display reflexions of the environment on the object. This behaviour can be disabled by selecting the NO_ENVIRONMENT field value. Use enum EnvironmentMap. Default is UFFIZI.

Definition at line 170 of file SoVolumeRenderingPhysicalQuality.h.

◆ predefinedMaterial

SoSFEnum SoVolumeRenderingPhysicalQuality::predefinedMaterial

Specifies a material from a list of predefined ones.

This field is taken into account only if shadingStyle is set to PHYSICALLY_BASED. The selected material will be applied on the object. The environment map and tone mapping algorithm are part of the predefined material properties. The value CUSTOM_MATERIAL can also be selected, in which case the properties of the applied material will be retrieved from the current material on the state. Use enum PredefinedMaterial. Default is SEMI_GLOSSY.

Definition at line 159 of file SoVolumeRenderingPhysicalQuality.h.

◆ shadingStyle

SoSFEnum SoVolumeRenderingPhysicalQuality::shadingStyle

Specifies which shading style is applied to the volume.

Use enum ShadingStyle. Default is PHYSICALLY_BASED.

Definition at line 148 of file SoVolumeRenderingPhysicalQuality.h.

◆ shadowsStyle

SoSFEnum SoVolumeRenderingPhysicalQuality::shadowsStyle

Specifies which kind of shadows to compute for the volume.

This field allows to enable RayTraced shadows, which have a better quality than the standard shadowmap-based shadows, but take longer to compute. This field is taken into account only if the associated SoVolumeRender node is inside a SoShadowGroup and the field SoShadowGroup::isActive is set to TRUE. Use enum ShadowsStyle. Default is RAYTRACED.

Definition at line 139 of file SoVolumeRenderingPhysicalQuality.h.

◆ toneMapping

SoSFEnum SoVolumeRenderingPhysicalQuality::toneMapping

Specifies which tone mapping algorithm to apply.

This algorithm is used to remap HDR color values to low range values. This field is taken into account only if shadingStyle is set to PHYSICALLY_BASED and if predefinedMaterial is set to CUSTOM_MATERIAL. Use enum ToneMapping. Default is MEDIUM.

Definition at line 179 of file SoVolumeRenderingPhysicalQuality.h.


The documentation for this class was generated from the following file: