OpenGL Performer is the foundation of a powerful suite of tools and features for creating real time visual simulation and other professional performance-oriented 3D graphics applications for the IRIX®, Linux®, Windows® XP, and Windows® 2000 operating systems.
OpenGL Performer 3.2 is built atop the industry-standard OpenGL® graphics library, includes both ANSI C and C++ bindings, and provides a common API and run-time interface for IRIX, Linux, and Windows OS-based applications.
OpenGL Performer 3.2 extends many of the existing features in the toolkit and adds several new features and capabilities.
- Support for the Silicon Graphics Prism®, SGI's Visualization System for 64-bit Linux
OpenGL Performer 3.2 provides support for the Silicon Graphics Prism®, SGI's groundbreaking visualization system combining the world-leading Linux scalability found in the SGI® Altix® high performance server products with Intel® Itanium® 2 processors and ATI® graphics processors.
- Support for OpenGL® 2.0 and the GLSL
OpenGL Performer 3.2 provides two new classes, pfShaderProgram and pfShaderObject, which encapsulate the functionality associated with the vertex and fragment programs used by the GLSL. A pfShaderObject is represented by a string containing the shader source code and a shader type. A collection of pfShaderObjects can be assembled to form a valid pfShaderProgram, which can then be used as a state element used by pfGeoState via the PFSTATE_SHADPROG attribute.
- New Scene Graph Optimizer functions in libpfdu
The new functions pfdMergeGraph, pfdStripGraph, and pfdSpatializeGraph provide a powerful pipeline of operations to reformat and optimize the OpenGL Performer scene graph for peak performance on a given hardware platform. Optimizations include re-stripping all primitives, reordering to improve cache reuse, merging short triangle strips, and several steps to properly spatialize the graph. A new "gopt" psuedoloader is also provided to enable these optimizations without code changes.
- Reworked pfCompositor API
The SGI Scalable Graphics Compositor option is a hardware device that combines multiple video inputs to produce a single video output. The video inputs can be divided spatially or blended together to form the final image. The pfCompositor API has been completely revamped in support of the SGI Scalable Graphics Compositor option for Silicon Graphics® Onyx4 UltimateVision and Silicon Graphics Prism systems.
- Reworked pfGeoArray API
The pfGeoArray (short for "Geometry Array") is a new OpenGL Performer data structure aimed at replacing the existing pfGeoSet. GeoArrays allow the user to define new sets of attributes, in addition to the standard vertex coordinates, normals, texture coordinates, or colors. These attributes can be used by vertex or fragment programs applied to the primitives (see pfVertexProgram and pfFragmentProgram). Also, GeoArrays are rendered using vertex arrays and vertex objects making the rendering much more efficient. pfGeoArray can be many times faster than pfGeoSet. In OpenGL Performer 3.2, the pfGeoArray API has been revamped to reflect design improvements for the use of shaders and other libpr objects.
- Alias® Maya® Exporter Enhancements
The Alias Maya exporter has been enhanced in OpenGL Performer 3.2. It now supports Maya versions 4.5 and 6.0, provides limited export capability for animation and camera motion, and can recover topology information in models composed of NURBS and other parametric surfaces.
- Topology Builder
A new topology generation utility "topobuilder" has been added. This utility can automatically detect shared boundaries between adjacent surfaces.
OpenGL Performer 3.2 is compatible with all SGI graphics platforms running IRIX® 6.5 or later, the Silicon Graphics Prism platform, and many 32-bit Intel® architecture-based systems with Linux and/or Windows. As with previous releases, support is provided for 32-bit (N32) and 64-bit (N64) executables on IRIX, a unified window management interface, and language bindings for both C and C++. The OpenGL Performer 3.2 for IRIX distribution also includes upgrades 2.0.7, 2.1.3, 2.2.15, 2.4.4, 2.5.3, 3.0.2, and 3.1.1 for versions 2.0, 2.1, 2.2, 2.4, 2.5, 3.0, and 3.1 respectively.