Class SoVolumeRenderingPhysicalQuality
- java.lang.Object
-
- com.openinventor.inventor.Inventor
-
- com.openinventor.inventor.misc.SoBase
-
- com.openinventor.inventor.fields.SoFieldContainer
-
- com.openinventor.inventor.nodes.SoNode
-
- com.openinventor.volumeviz.nodes.SoVolumeRenderingPhysicalQuality
-
- All Implemented Interfaces:
SafeDisposable
public class SoVolumeRenderingPhysicalQuality extends SoNode
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 aSoVolumeRenderingQuality
node, in the sense that it causes subsequentSoVolumeRender
nodes to be drawn with different rendering effects and/or levels of quality, the difference being that theSoVolumeRenderingQuality
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:SoVolumeRenderingQuality.preIntegrated
= trueSoVolumeRenderingQuality.ambientOcclusion
= trueSoVolumeRenderingQuality.deferredLighting
= true
The presence of this node in the scenegraph also forces subsequent
SoVolumeRender
nodes to be drawn withSoVolumeRender.samplingAlignment
set toSoVolumeRender.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
SoMaterial
on the state and has the same limitations. SeeSoVolumeRenderingQuality.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 (seeenvironmentMap
). The fieldtoneMapping
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 fieldpredefinedMaterial
. Any material set between this node and theSoVolumeRender
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 theSoMaterial.diffuseColor
will be mixed with the voxel colors using a component-wise multiplication. Finally, the fieldshadingStyle
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. TheSoShadowGroup
fields taken into account for this effect areSoShadowGroup.isActive
,SoShadowGroup.intensity
andSoShadowGroup.quality
. This type of shadows supportsSoROI
clipping, but does not supportSoClipPlane
,SoVolumeClippingGroup
,SoUniformGridClipping
orSoUniformGridProjectionClipping
. Note that this effect has a huge impact on performance. The fieldshadowsStyle
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. OnlySoVolumeRender
nodes are affected by the blurring. The fieldenableDepthOfField
is used to switch it on and off, while theblurFactor
field controls the amount of blur induced by this effect.File format/default:
VolumeRenderingPhysicalQuality {
}- Since:
- Open Inventor 9.8
- See Also:
SoVolumeRenderingQuality
,SoShadowGroup
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SoVolumeRenderingPhysicalQuality.EnvironmentMaps
List of available Environment Maps for Physically Based Lighting.static class
SoVolumeRenderingPhysicalQuality.PredefinedMaterials
List of available predefined materials.static class
SoVolumeRenderingPhysicalQuality.ShadingStyles
List of available shading styles.static class
SoVolumeRenderingPhysicalQuality.ShadowsStyles
List of available types of shadows.static class
SoVolumeRenderingPhysicalQuality.ToneMappings
List of available Tone Mapping algorithms for Physically Based Lighting.-
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 SoSFFloat
blurFactor
This value controls the intensity of the blurring for the Depth Of Field effect.SoSFBool
enableDepthOfField
Enables a 'Depth of Field' effect on the volume.SoSFEnum<SoVolumeRenderingPhysicalQuality.EnvironmentMaps>
environmentMap
Specifies which Environment map is used.SoSFEnum<SoVolumeRenderingPhysicalQuality.PredefinedMaterials>
predefinedMaterial
Specifies a material from a list of predefined ones.SoSFEnum<SoVolumeRenderingPhysicalQuality.ShadingStyles>
shadingStyle
Specifies which shading style is applied to the volume.SoSFEnum<SoVolumeRenderingPhysicalQuality.ShadowsStyles>
shadowsStyle
Specifies which kind of shadows to compute for the volume.SoSFEnum<SoVolumeRenderingPhysicalQuality.ToneMappings>
toneMapping
Specifies which tone mapping algorithm to apply.-
Fields inherited from class com.openinventor.inventor.Inventor
VERBOSE_LEVEL, ZeroHandle
-
-
Constructor Summary
Constructors Constructor Description SoVolumeRenderingPhysicalQuality()
-
Method Summary
-
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
-
shadowsStyle
public final SoSFEnum<SoVolumeRenderingPhysicalQuality.ShadowsStyles> 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 associatedSoVolumeRender
node is inside aSoShadowGroup
and the fieldSoShadowGroup.isActive
is set to true. . Default isRAYTRACED
.
-
shadingStyle
public final SoSFEnum<SoVolumeRenderingPhysicalQuality.ShadingStyles> shadingStyle
Specifies which shading style is applied to the volume. . Default isPHYSICALLY_BASED
.
-
predefinedMaterial
public final SoSFEnum<SoVolumeRenderingPhysicalQuality.PredefinedMaterials> predefinedMaterial
Specifies a material from a list of predefined ones. This field is taken into account only ifshadingStyle
is set toPHYSICALLY_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 valueCUSTOM_MATERIAL
can also be selected, in which case the properties of the applied material will be retrieved from the current material on the state. . Default isSEMI_GLOSSY
.
-
environmentMap
public final SoSFEnum<SoVolumeRenderingPhysicalQuality.EnvironmentMaps> environmentMap
Specifies which Environment map is used. This field is taken into account only ifshadingStyle
is set toPHYSICALLY_BASED
and ifpredefinedMaterial
is set toCUSTOM_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 theNO_ENVIRONMENT
field value. . Default isUFFIZI
.
-
toneMapping
public final SoSFEnum<SoVolumeRenderingPhysicalQuality.ToneMappings> 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 ifshadingStyle
is set toPHYSICALLY_BASED
and ifpredefinedMaterial
is set toCUSTOM_MATERIAL
. . Default isMEDIUM
.
-
enableDepthOfField
public final SoSFBool 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 theblurFactor
field. Default is true.
-
blurFactor
public final SoSFFloat 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.
-
-