
NVIDIA® SceniX™ 7.2: scene management engine
The SceniX scene management engine is an established solution in its seventh release as a cross-platform, object-oriented programming solution for software developers to quickly create interactive OpenGL applications having the highest degree of interactive performance and realism. Unlike most scene graphs, SceniX was designed around shader usage and renderer independence for applications requiring high image quality and the flexibility to share shaders via CgFX. SceniX also includes mature support for interactive ray tracing using OptiX, and the RTFx ray tracing effect interchange format.
The SceniX engine quietly powers many of the most demanding 3D graphics applications in use today, and is freely available for incorporation within your OpenGL and/or ray tracing applications on either Windows or Linux.

Images courtesy of Realtime Technology AG (RTT) and Autodesk.
SceniX 7.2 Now Available

Changes/Improvements in SceniX v7.2.9.2.0
- Improved render performance.
- A SceniX Viewer crash on line picking after processing the CombineTraverser has been fixed.
- The UnifyTraverser, when applied only to vertices, did not correctly report if geometry actually has changed. This has been fixed.
- A viewer crash on a default StateSet traversal has been fixed.
- Normals generation applied to a Drawable did not consider multi-referenced vertex attributes. This has been fixed.
- If a transform node was placed under a switch node, the transform was not applied during ray tracing resulting in wrong-positioned geometry. This has been fixed.
- The ray tracer issued an assertion failure when processing unsupported primitive types. This has been fixed.
- A LightingAttribute which disables lighting corrupted the rendering output for subsequent geometries. This has been fixed.
- Fixed inconsistent primitive index returned by the RayIntersectTraverser.
- Fixed combining of line primitives.
- The VRML importer interpreted animations not starting at time 0 incorrectly. This has been fixed.
- Fixed the VRML Box size vector conversion to vertex coordinates. Axis aligned coordinate values needed to be half of the size extends.
- The time required for loading models into the viewer has been substantially improved.
- Fixed an issue with MapElement::pickMap returning incorrect results.
- Fixed an issue with MapList::pickMap returning a reversed order of maps.
- Fixed an issue with the RayIntersectTraverser returning a wrong intersection distance when transforms contained scaling.
- Fixed an occasional crash on tangent space calculation that was caused by using the wrong attribute index for tangent coordinate lookup.
- Polygon offset was not working for filled polygons. This has been fixed.
- Occasional crashes while optimizing a loaded model have been fixed.
- Several corruptions after optimizing have been fixed.
- Fixed an issue with the loadTextureHost convenience function using a wrong search path.
- Face culling was not correctly enabled when applying a FaceAttribute. This has been fixed.
- Surface material colors randomly changed instead of using a default material if no StateSet was explicitly applied to the surface. This has been fixed.
- An issue with missing polygons after vertex animation when using display lists has been fixed.
- Constructing an NxN matrix from an MxM matrix, with N>M, left matrix entries uninitialized. This has been fixed.
- Reduced memory footprint of loaded scenes.
- The NVSG importer failed to read quoted object names containing spaces. This has been fixed.
- Improved debug runtime performance with memory leak detection enabled.
- COLLADA loader generated CgFX shaders' spotlight cutoff angle corrected inside the rasterizer.
- COLLADA loader profile_COMMON.rtfx corrected to apply the spotlight exponent inside the ray tracer.
- Added QtForwardShadowMapping example demonstrating multi-pass SceneRenderer implementation with a single light, casting a shadow into a constructed scene.
- Added QtProfileCommonShadow example demonstrating multi-pass SceneRenderer implementation with multiple colored lights using render to Texture2DArray layers, CgFX shader replacement inside a scene based on the COLLADA profile_COMMON material definition, migrating existing material parameters, casting shadows into a loaded scene.
- Fixed a corruption with size culling enabled. Scene objects that covered more screen space units than specified by the size factor, were unexpectedly culled away.
Changes/Improvements in SceniX v7.1.9.1.0
- Fixed an unintentional disconnection of the vieport camera after switching to stereoscopic diplay mode. The defect was reproducible with the SceniX Viewer.
- Fixed VRML-import of spot lights. The cutoff angle was inadvertently scaled to half of the specified angle.
- Fixed an application crash root-caused by a GL state stack corruption. The crash was reproducible with the feature_buffer test.
- Fixed a display corruption root-caused by emissive and specular colors mixed up by the internal render framework.
- Fixed a corruption with combining fixed functionality and CgFX passes. The GL state set by the CgFX pass was not reset prior to the fixed functionality render pass.
- Fixed a corruption with the sample_intersection test caused by non-matching z-buffer depths used between first and second render pass.
- Added a new MFC-based sample (MFCMinimal) to showcase intergration with an MFC application framework.
- Fix size of temporary debug value arrays for RTVariableNxMT<N,M,T>::set() and ::get() functions. Previous code only allocated N instead of N*M data elements which resulted in memory corruption and crashes in debug mode.
- More performance optimizations due to elimination of CPU overhead.
- Fixed COLLADA import of texture images specified by a network server path(e.g. \\server\img.png).
- Fixed a flaw inside the DAELoader texture attribute cache and the texture image cache which led to inconsistencies with texture target assignments, which in turn resulted in image upload failures.
- Fixed an issue with texture file names in an CgFxEffect not being correctly reset when a new texture not created from a file but from memory was re-assigned to the CgFxEffect.
- Fixed a crash on rendering after an LOD node was removed from the scene tree.
- Culling operations for the MatrixCamera have been accelerated by many times over.
- The shader builder used for OpenFlight import did not correctly recognize uniforms named world, worldI, worldT, and worldIT, which in turn resultedin display corruptions if these particular names were used.
- MapLists were not considered for rendering by the SceneRenderer API first introduced with SceniX 7. This has been fixed now.
- Added support for the CG_SAMPLERBUF sampler type. Samplers of that particular type were not considered a sampler by the SceniX API before.
- The ShadowCasting property of a LightSource was not considered by the ray tracer. This has been fixed now.
- Converting primitives of type PRIMITIVE_TRIANGLES to PRIMITIVE_TRIANGLE_STRIP has been accelerated by an order of magnitude.
- Re-enabled saving of HDR textures to a file. This was inadvertently disabled by the previous release.
- Ray tracing performance has been distinctly improved through a more effective use of OpenGL interoperability.
- Fixed a failing validation of a PointSpriteEnable state assignment inside a CgFX. The GL_ARB_point_sprite was mistakenly indicated as not availableinside the SceniX framework.
- For the SceniX Linux packages the help files are provided as html again. The previous version just shipped with compiled help.
SceniX v7 marks another stable release of the NVIDIA Scene Management Engine with these new features:
- Revised handling of SceniX C++ core objects to unify instantiation, access control, and automated lifetime control.
- Introduced new Renderer framework to support renderer pipelines for multi-pass rendering and post processing.
- Simplifies integration with application frameworks and provides utility classes for Qt and wxWidgets.
- Completely revised Qt-based cross-platform SceniX Viewer showcases cross-renderer capabilities of SceniX.
- Incorporates an OpenGL-based real time renderer and an NVIDIA OptiX based ray tracer.
- The SceniX render processing framework has been greatly improved to minimize CPU overhead. This goes along with a remarkable performance improvement of the built-in real time renderer.
- New Primitive class introduced to add support for more recent primitive types in a more generic way.
- Per-object TraversalMask introduced to support conditional traversal of individual tree objects. TraversalMasks affect nodes and geometries.
- New generic Buffer class introduced to store vertex and index data. GL-specific variants supplied to allow for efficient streaming buffer support in conjunction with the VertexAttributeSet and Primitive core classes.
Version 6 enables existing and new SceniX applications to now quickly take advantage of:
- Tessellation programs for dynamically updating surfaces on DirectX 11compatible hardware such as NVIDIA's new "Fermi" GPU architecture
- Cg Runtime Version 3 support for the latest in shading possibilities and Tessellation.
- New PrimitiveSet classes for Bezier Patches, QuadPatches, and TriPatches with Tessellation support
- Traversers for converting between Triangles & Quads to QuadPatches4x4 & TriPatches4
- Improved Interactive Ray Tracing, now using OptiX 2.1 with optimizations for Fermi class GPUs
-
Continued improvements in performance, flexibility and fidelity
New features introduced with SceniX 5:
- Faster Performance – twice as many frames per second in many cases than version 4
- Custom Culling – based on screen size
- New Samples – for using PhysX, HDR processing, and wxWidgets with SceniX
- Cg 2.2.001* support – enabling the latest rendering capabilities, performance gains, and optimal profiles for the latest NVIDIA GPUs
- .3DS format support
- Distributed GPU Rendering– enabling scene size to scale across Quadro Plex GPUs
- MetaSL support – for leveraging shaders created within mental mill®.
- 10-bit/component color support – for superior image quality on compatible hardware
- Stencil Buffer support – enabling stencil buffer operations to occur per drawable object
SceniX has proven to be a reliable underpinning for applications serving markets needing to analyze 3D data, make decisions, and convey design in real-time, such as Styling, Visualization, Retail, and Broadcast Graphics. The engine is extensively documented and provides a comprehensive set of classes that are easily combined and extended to create custom, GPU-centric graphics applications. SceniX also includes a sample viewer application and numerous tutorials, with source code, to learn how to use SceniX features quickly and effectively. A complete list of SceniX capabilities and system requirements is available here.
SDK Sample Content
Within NVIDIA SceniX you will find numerous sample applications, including the SceniX Viewer which demonstrates nearly all the possibilities of the SDK. SceniX capabilities can be examined within the SceniX Viewer by exploring scenes imported from COLLADA, OBJ, VRML, 3DS or OpenFlight formats. Also included are samples for interactive ray tracing and integrating physics, audio, stereo, skinning, animation playback, frame-based rendering, and cluster rendering.
| SceniX Features | Download SceniX 7.2 | Download a Legacy Version | SceniX Support Forum | SceniX Overview | Acceleration Engine Overview |
Subscribe to our Developer RSS feed or follow nvidiadeveloper on Twitter for the latest news about OptiX or other applicaiton acceleration engines.



Registered Developers Website
NVDeveloper (old site)