See: Description
Class | Description |
---|---|
SoDirectVizManager | Deprecated
As of Open Inventor 9500 See documentation for more details
|
Enum | Description |
---|---|
SoDirectVizManager.CacheModes |
Cache states.
|
SoDirectVizManager.EnvLights |
Number of environment lights.
|
<font color="#0000FF">NOTE:</font> The classes in this extension do not exist in Open Inventor 10.0 and later.
DirectViz allows Open Inventor applications to render 3D scenes with very high realism and scalability by using the Real-Time Ray-tracing engine OpenRTRT(tm), an alternative to OpenGL.
Ray tracing is a rendering technique that uses principles of optics to model the path taken by light by following rays of light as they interact with surfaces.
NOTE: DirectViz is a separately licensed extension. You must have a DirectViz license string in addition to your Open Inventor license string. One of its fields specifies the maximum number of ray-tracing clients in cluster mode. If this field is set to zero, DirectViz runs in stand-alone mode and the rendering cannot be distributed on a cluster. You may also need to install a license for OpenRTRT. Please check your license document.
DirectViz features
When using ray-tracing mode, OpenGL rendering is replaced, and OpenGL calls will have no effect.
Please see the Open Inventor Toolkit User's Guide for an introduction to DirectViz ray-tracing.
Classes related to DirectViz
SoDirectVizManager
SoDirectVizShader
and derived classesSoDirectVizGeneralShader
for surface shaders and SoDirectVizEnvironmentShader
for environment shaders). Supported shaders include: Diffuse, Phong, Glass, BumpMap, FresnelPhong1, AlphaMap, GlossyPhong, GlossyGlass, BumpMappedGlass (depending on shader package used).
SoMaterial
, SoLight
, SoCamera
, and a number of other property classes are automatically translated into shaders internally.
SoMaterial
has two new fields related to DirectViz: SoMaterial.receiveShadows and SoMaterial.reflectiveColor
.
SoSeparator
has a new field SoSeparator.directVizCaching
for controlling the way DirectViz builds internal ray-tracer acceleration structures for shapes.
SoPreferences
includes a number of environment variables related to DirectViz, prefixed by DIRECTVIZ_.
Performance
DirectViz performance depends on the number of processed rays. It depends on the resolution of the rendered frame because a primary ray is cast for each pixel (or more with oversampling). It also depends on the "optical complexity" of the scene, for instance the number of transparent objects, reflections, and refractions (casting secondary rays), as well as the number of light sources (to be checked by illumination and shadow rays). Therefore performance may change depending on the part of the scene that is visible in the rendered image.
DirectViz geometry objects and caching
DirectViz internal "geometry objects" - storing acceleration structures for ray-tracing - are quite similar to OpenGL display lists. SoDirectVizManager
provides two ways of managing DirectViz objects:
SoSeparator.directVizCaching
field. One DirectViz geometry object will be created for each high-level SoSeparator
with directVizCaching set to ON.
An optimal scene graph organization would group static parts of the scene graph under SoSeparator
nodes with directVizCaching set to ON, and dynamic parts under SoSeparator
nodes with directVizCaching set to OFF.
Avoid putting dynamic parts of a scene graph under a SoSeparator
with the directVizCaching field set to ON (for instance draggers) as the performance could be very poor.
Cluster mode
The cluster mode can only be set before the application has started. It is enabled with the DIRECTVIZ_CLUSTER environment variable (see SoPreferences
). If its value is different from 0, it specifies the number of OpenRTRT clients. DirectViz uses port 9001 for communication in cluster mode.
See the Open Inventor Toolkit User's Guide for information about cluster mode DirectViz.
Limitations
The following Open Inventor features are not supported in this DirectViz release, i.e., ignored or not rendered as they would be with OpenGL:
SoCSGGroup
, SoTexture3
, SoPointSet
, SoMarkerSet
, SoPolygonOffset
, SoImage
, SoBackground
and derived classes, SoTextureUnit
, SoIndexedTexture2
, SoVRMLMovieTexture
.
SoAnnotation
nodes are handled like SoSeparator
nodes.
SoVertexShader
, SoFragmentShader
are ignored.
PoView
, PoSceneView
, multiple cameras in a scene graph or changing the viewport element are not supported.
SoComplexity.textureQuality
field is ignored.
SoShapeHints
) is ignored: both sides of faces are always visible.
SoTextureCoordinateFunction
).
Generated on January 23, 2025, Copyright © Thermo Fisher Scientific. All rights reserved. http://www.openinventor.com