History
Performer came about in 1991 when a group from SGI's Open Inventor project, then known as IRIS Inventor, decided to focus on performance rather than ease of programmability. Whereas Inventor delivered easy-to-use objects and various UI elements to interact with them, Performer focused on a scene graph system that could be re-arranged on the fly for performance reasons, allowing the various passes of a rendering task to be performed in parallel in multipleFeatures
Performer consists primarily of two libraries: the lower-level ''libpr'' and the higher-level ''libpf.'' The ''libpr'' library provides an object-oriented interface to high-speed rendering functions based on the concept of a ''pfGeoSet'' and a ''pfGeoState''. A ''pfGeoSet'' is a collection of graphics primitives, such as polygons or lines. A ''pfGeoState'' encapsulates properties pertaining to a given pfGeoSet such as lighting, transparency, and texturing. The ''libpf'' library includes functions for the generation and manipulation of hierarchical scene graphs, scene processing (simulation, intersection, culling, and drawing tasks), level-of-detail management, asynchronous database paging, dynamic coordinate systems, environment models, light points, and so on. This library also provides transparent support for multiple viewports spread across multiple graphics pipelines. Other Performer libraries--''libpfutil, libpfdb, libpfui,'' etc.--provide functions for generating optimized geometry, database conversion, device input (such as for interfacing with external flyboxes and MIL-STD-1553 mux busses), motion models, collision models, and a format-independent database interface that supports common data formats such as Open Inventor, OpenFlight, Designer's Workbench, Medit, and Wavefront.External links