OpenGL Performer  Programmer's Guide

Document Number: 007-1680-060

Front Matter

| List of Figures | List of Examples | List of Tables |

Table of Contents

New Features in This Guide

About This Guide
Why Use OpenGL Performer?
What You Should Know Before Reading This Guide
How to Use This Guide
Internet and Hardcopy Reading for the OpenGL Performer Series
Obtaining Publications
Reader Comments

1. OpenGL Performer Programming Interface
General Naming Conventions
Class API
Base Classes

2. Setting Up the Display Environment
Using Pipes
Using Channels
Controlling the Video Output
Using Multiple Channels
Using Channel Groups

3. Nodes and Node Types
Working with Nodes
Node Types
Sample Program

4. Database Traversal
Scene Graph Hierarchy
Application Traversal
Cull Traversal
Draw Traversal
Controlling and Customizing Traversals
Process Callbacks
Intersection Traversal

5. Frame and Load Control
Frame-Rate Management
Level-of-Detail Management
Maintaining Frame Rate Using D ynamic Vid eo Res olution
Dynamic Load Management
Successful Multiprocessing with OpenGL Performer

6. Creating Visual Effects
Using pfEarthSky
Atmospheric Effects
Patchy Fog and Layered Fog

7. Importing Databases
Overview of OpenGL Performer Database Creation and Conversion
libpfdu - Utilities for Creation of Efficient OpenGL Performer Run-Time Structures
Developing Custom Importers
Maximizing Database Loading and Paging Performance with PFB and PFI Formats
Supported Database Formats
Description of Supported Formats
Database Operators with Pseudo Loaders

8. Geometry
Geometry Sets
3D Text

9. Graphics State
Immediate Mode

10. Shader
Multipass Rendering
Using OpenGL as a Graphical Assembly Language
The pfFBState Class
Shading Concepts
The Default Shader State
Loading Shaders from Files
The OpenGL Performer Shader File Format

11. Using DPLEX and Hyperpipes
Hyperpipe Concepts
Configuring Hyperpipes
Configuring pfPipeWindows and pfChannels
Programming with Hyperpipes

12. ClipTextures
Cliptexture API
Preprocessing ClipTextures
Cliptexture Configuration
Configuration API
Post-Scene Graph Load Configuration
Manipulating Cliptextures
Using Cliptextures

13. Windows
Creating a pfWindow
Configuring the Framebuffer of a pfWindow
pfWindows and GL Windows
Manipulating a pfWindow
Communicating with the Window System
More pfWindow Examples

14. pfPipeWindows and pfPipeVideoChannels
Using pfPipeWindows
Controlling Video Displays

15. Managing Nongraphic System Tasks
Handling Queues
High-Resolution Clocks
Memory Allocation
Asynchronous I/O (IRIX only)
Error Handling and Notification
File Search Paths

16. Dynamic Data
Animating a Geometry

17. Active Surface Definition
Using ASD
ASD Solution Flow Chart
A Very Simple ASD
ASD Elements
Data Structures
pfASD Queries
Using ASD for Multiple Channels
Combining pfClipTex ture and pfASD
ASD Evaluation Function Timing

18. Light Points
Uses of Light Points
Creating a Light Point
Setting the Behavior of Light Points
Reducing CPU Processing Using Textures
Preprocessing Light Points
Calligraphic Light Points
Using pfCalligraphic Without pfChannel
Debugging Calligrap hic Lights on Non-Calligraphic Systems
Calligraphic Light Example

19. Math Routines
Vector Operations
Matrix Operations
Quaternion Operations
Matrix Stack Operations
Creating and Transforming Volumes
Intersecting Volumes
Creating and Working with Line Segments
General Math Routine Example Program

20. Statistics
Interpreting Statistics Displays
Collecting and Accessing Statistics in Your Application

21. Performance Tuning and Debugging
Performance-Tuning Overview
How OpenGL Performer Helps Performance
Specific Guidelines for Optimizing Performance
Performance Measurement Tools
Guidelines for Debugging
Memory Corruption and Leaks
Notes on Tuning for RealityEngine Graphics

22. Programming with C++
Class Taxonomy
Programming Basics
Porting from C API to C++ API
Subclassing pfObjects
Multiprocessing and Shared Memory
Performance Hints