The SceniX scene management engine is an object-oriented programming library for creating cutting-edge, real-time 3D applications with a state of the art scene graph. SceniX provides a comprehensive set of C++ classes for developers to easily combine, extend, and create their own fast and reliable graphics applications. As a scene graph, SceniX provides a reusable, hierarchical data structure that describes a 3D scene's objects in space, time, appearance, and in relationship with one another. SceniX has been used to power many highly interactive environments for a variety of purposes, including: automotive styling, gas and oil data exploration, scientific and commercial visualization, simulation, modeling, and interactive training.
SceniX is not a complete application, but an important underpinning of high performance solutions like RTT DeltaGen® and Autodesk Showcase® that adds the application's primary capabilities. SceniX focuses on representing the 3D scene as interactively as possible and enabling high quality, efficient interactive rendering. Other components of the scene graph, such as physics or modeling, are not included but can be integrated.
SceniX gives developers maximum flexibility in leveraging its engine to meet the specific needs of their application, market and end users. Of particular development value are:
SceniX maximizes the performance of graphics hardware by reducing the amount of data and grouping related data sets. Its hierarchical structure allows the culling of objects and their related data not needed for rendering the scene, and sorts data so that related objects are rendered at the same time.
SceniX manages the interface to graphics hardware, significantly reducing the amount of OpenGL programming required to build interactive applications.
SceniX handles the lower-level tasks of rendering and transferring data, so porting your application to another platform can be as simple as a recompile.
SceniX scales performance across multiple GPUs in a system or across a sophisticated graphics cluster, removing a significant development burden for data and/or performance intense applications.
SceniX takes advantage of modern GPU shading and compute power by fully integrating both Cg/CgFX and OptiX ray tracing, abstracting the low-level work required to organize and deliver the data to the GPU and ensuring optimal performance as GPU architectures continue to advance.
The NVIDIA SceniX engine is a C++ scene graph API that is DLL based, thread safe, and leverages the latest innovations in OpenGL, Cg, OptiX, and CompleX. SceniX supports 32-bit and 64-bit versions of Windows and Linux, and allows 32 & 64-bit development on the same system. Highly extendable, the scene graph includes the following capabilities within its core:
- Effective Tree Optimization with extensive scene methods and controls
- Optimized memory and render-list management
- Frustum and Occlusion Culling, Level of Detail (LOD) handling
- Multiple Render Paths, including: Vertex Buffer Objects (VBO), Display Lists, Vertex Arrays
- Write-Mapping for saving large files more quickly
- Distributed GPU Rendering using CompleX for maintaining fluid interactivity when scene sizes exceed 4GB
- Geometry: Indexed Triangles, Triangle Fans, TriStrips, Quad Meshes, Quad Strips, Bezier- Quad- and Tri-Patch primitives for tessellation, Lines, LineStrips, Points
- Cameras: Perspective, Orthographic, Stereo
- Lights: Point, Spot, Direct
- Parent/Child Hierarchies, Group, Billboard, FlipbookAnimation, LOD, Transform, AnimatedTransform, Switch
- Custom/arbitrary application/user data for objects
- Interpolation-Based and Frame-based animation
- Separate Translation, Scale, Rotation animation keys
- Quaternion rotations about definable transform points
- Vertex Animation and Mesh Skinning (CPU or GPU)
- Flipbook Animation for cycling object visibility
- Playback control (start/stop, forward/backward, swinging/looping)
- Choice of camera manipulators: Trackball, Fly Thru, Walk Thru, and Animation
- Selection queues by highlighted edges or bounding box
- Picking/selecting via ray intersection, and Tree Searching
- Interactive Zoom, Orbit, Pan, Dolly, and Zoom Selected or Extents
- Affine transforms, mirroring, smooth rotations
- Triggers and Behaviors, dynamic transforms and switch nodes.
- Full shader support for the latest GPU capabilities via CgFX 3.0
- Interactive ray tracing via an alternative traverser based upon NVIDIA OptiX
- Flexible Display Modes: Points, Wireframe, Shaded, Textured, Effected, Lit/Unlit
- Multi-Pass Anti-Aliasing (MPAA ) for seamless integration of Full Screen Anti-Aliasing (GPU or CPU) via: Accumulation Buffers, Read Pixels, P-Buffers, or Framebuffer Objects (FBO)
- Transparency Options: Stippled, Blended, Order Independent (P-Buffer or FBO)
- Multi-Pass Rendering at the Shader Level (multi-pass effects), Geometry-level, and Scene-level
- Interactive Shadow Maps w/ Intensity
- Scene Effects: Depth of Field, Fog, Interactive Clipping planes
- Textures: 1D, 2D, 3D, CubeMap, Rectangle, 1DArray, 2DArray
- Backdrop images
- Volume Rendering (requires a Quadro FX GPU)
- Cluster support via asymmetric and overlapping viewing frustums
- Distributed GPU Rendering via NVIDIA CompleX on Quadro Plex systems for accommodating massive scene complexity.
- Native scene formats NBF (binary), NVSG (ASCII)
- Scene import for COLLADA, COLLADA FX, VRML2.0/WRL, OpenFlight, OBJ, 3DS, PLY, and others via custom plug-ins. COLLADA support includes shader definitions, animation and skinning.
- Image format support includes: BMP, DDS, JPG, GIF, HDR-HDRI, Vertical Cross CubeMaps, OpenEXR, PNG, RGB, TGA, TIF, and others via custom plug-ins.
- Textures support most OpenGL formats, including fixed, float, compressed, and some special packed data types.
- Shaders in CgFX (e.g., from FXComposer), MetaSL (from mental mill), and RTFx (ray tracing).
- Real-time, High Definition Video via SDI interface
- CG 3.0 and OpenGL 2.1 or higher shaders, including support for geometry and tessellation shaders, texture arrays, and scalable with SLI
- Interactive ray tracing, with the ability to switch between OpenGL and maintain separate shaders per renderer
- 30-bit Color
- Quad Buffered Stereo (windowed and full screen, passive or active)
- Large scale visualization via NVIDIA CompleX using distributed GPU Rendering
SceniX Viewer Sample
- MFC-based GUI example for both 32-bit and 64-bit Windows
- Single viewport navigation and a basic interface exposing nearly all SceniX capabilities, with the entire file interchange capabilities of SceniX
- Material Editor (for defined shaders) with Drag and Drop material assignment
- wxWidgets based GUI example for interactive ray tracing on Windows and Linux
- OpenGL Capabilities
- Minimum: OpenGL 1.4 compliant graphics board
- Recommended: OpenGL 2.1 or higher
- Ideal: NVIDIA Quadro FX or Fermi-based graphics board
- Interactive Ray Tracing Capabilities
- NVIDIA GPUs of G80 class or later
- CUDA 3.0 compliance
- GT200 or Fermi architecture required for using multiple GPUs
- Microsoft Visual C++ 2005 and 2008
- Multiple Platform Support:
- Windows XP, Windows Vista, and Windows 7 in 32-bit/64-bit
- Linux 32-bit/64-bit
- NVIDIA Quadro HD SDI video i/o
- NVIDIA Quadro (FX or Fermi series) for 30-bit color output and quad buffered stereo
- NVIDIA Quadro Plex systems for large scale visualization with CompleX (up to 32 GB with 8 GPUs)
- NVIDIA GPUs for interactive ray tracing
- Machine clusters, with custom management software