Scene Graphs


By itself, OpenGL has no way of knowing if an object is visible or not.

As a result, every object in the database is sent to the graphics card for rendering.

When arranged in a scene graph, parts of the scene can be culled


State Management


Each OpenGL state change, such as texturing and lighting properties, must be communicated to the graphics card.

If state changes are analyzed and aggregated then the graphics card can work more efficiently.


Model Loaders


Native OpenGL does not offer a means of organizing polygons, graphics states, and textures into an aggregate.

This aggregate is commonly known as a 3D Model.

Modeling packages, such as Maya, produce 3D models and the format can be converted for use by almost any other modeling package.

Model loaders can reorganize the model data to reduce the burden on the graphics card.

Complete models, their textures, and their material properties can also be cloned, or referenced, for reuse in other parts of the scene.

This can greatly reduce the amount of memory required on both the computer and the graphics card.




Most interactive real-time graphics do some level of application processing that involves reading the input devices and changing the scene.

By breaking the rendering of each scene into an application, cull, and draw process, the computer can optimize its resources.

The draw processing stage involves turning the scene graph into OpenGL calls and passing them to the graphics card.

Instead of waiting for the graphics card to render the scene, the computer can begin processing the application processing for the next frame.

Once the application processing has been completed for a frame, the cull processing can prune the scene graph.

And, instead of waiting for the cull processing to finish, the application process can begin processing the next frame.

As a result, the effective frame rate can be reduced to the time required for the application, cull, or draw processing stage whichever is longest.


OpenGL Performer




The first graphic library to incorporate scene graphs, state management, model loaders, and multiprocessing.

Most of these features are now standard in graphics libraries including those used by DirectX and Sony.

Uses data structures to organize and optimize the generation of OpenGL instructions to the graphics card.