About This Guide
Prev |  | Next

## About This Guide

Welcome to the OpenGL Performer application development environment. OpenGL Performer provides a programming interface (with ANSI C and C++ bindings) for creating real-time graphics applications and offers high-performance, multiprocessed rendering in an easy-to-use 3D graphics toolkit. OpenGL Performer interfaces with the OpenGL graphics library; this library combined with the IRIX, Linux, or MicroSoft Windows (Windows 2000, Windows NT, or Windows XP) operating system forms the foundation of a powerful suite of tools and features for creating real-time 3D graphics applications.

This guide introduces the most important concepts and classes in the Performer libraries. A full explanation of all OpenGL Performer classes can be found in the OpenGL Performer Programmer's Guide. Use this guide to quick-start your programming using the OpenGL Performer application programming interface (API.)

## What Is OpenGL Performer?

OpenGL Performer is an extensible software toolkit for creating real-time 3D graphics. Typical applications are in the fields of visual simulation, entertainment, virtual reality, broadcast video, and computer aided design. OpenGL Performer provides a flexible, intuitive, toolkit-based solution for developers who want to optimize application performance.

## Why Use OpenGL Performer?

Use OpenGL Performer to:

- Build visual simulation applications and virtual reality environments

- Render on-air broadcast and virtual set applications quickly

- View large simulation-based design tasks

- Maximize the graphics performance of any application

Applications that require real-time visuals, free-running or fixed-frame-rate display, or high-performance rendering can benefit from using OpenGL Performer.

OpenGL Performer drastically reduces the work required to tune your application's performance. General optimizations include:

- Use of highly tuned routines for all performance-critical operations

- Reorganization of graphics data and operations for faster rendering

OpenGL Performer also handles SGI architecture-specific tuning issues for you by selecting the best rendering and multiprocessing modes at run time, based on the system configuration.

OpenGL Performer is an integral part of SGI visual simulation systems. It provides the interface to advanced features available exclusively with the SGI product line, such as the InfiniteReality, Silicon Graphics Octane, and Silicon Graphics O2, VPro, and Impact graphics subsystems. OpenGL Performer provides the features to develop a sophisticated image generation system in a powerful, flexible, and extensible software environment. OpenGL Performer is also tuned to operate efficiently on a variety of graphics platforms; you do not need the hardware sophistication of InfiniteReality graphics to benefit from OpenGL Performer.

## What You Should Know Before Reading This Guide

To use OpenGL Performer, you should be comfortable programming in ANSI C or C++. You should have a fairly good grasp of graphics programming concepts; terms such as “texture map” and “homogeneous coordinate” are not explained in this guide. It helps if you are familiar with the OpenGL graphics libraries.

On the other hand, though you need to know a little about graphics, you do not have to be a seasoned C (or C++) programmer, a graphics hardware guru, or a graphics library virtuoso to use OpenGL Performer. OpenGL Performer puts the engineering expertise behind SGI hardware and software at your fingertips so that you can minimize your application development time while maximizing the application's performance and visual impact.

## What This Guide Contains

This guide is divided into the following parts, chapters, and appendices: Part One is an overview of OpenGL Performer features; Part Two is a programming overview. For more detailed programming instructions, see the OpenGL Programmer's Guide. If your interest is in programming only, skip to Part Two.

### Part One: Overview of OpenGL Performer

- Chapter 1, “Getting Acquainted with OpenGL Performer”, provides a hands-on example of an OpenGL Performer application, Perfly, to introduce you to the features of OpenGL Performer.

- Chapter 2, “OpenGL Performer Basics”, provides an introduction to OpenGL Performer, including a survey of visual simulation techniques, descriptions of features and libraries, and a discussion of some of the specific details of OpenGL Performer structure and use.

### Part Two: Programming with OpenGL Performer

- Chapter 3, “OpenGL Performer Programming Interface”, describes the fundamental ideas behind the OpenGL Performer programming interface.

- Chapter 4, “Introduction to OpenGL Performer Concepts”, describes the basic classes that implement the database-to-display pipeline.

- Chapter 5, “Creating a Display with pfChannel”, discusses many of the important classes that constitute the process of taking data from a scene graph database and rendering it on a display system.

- Chapter 6, “Creating Scene Graphs”, describes how to create, change, load, and save scene graphs.

- Chapter 7, “Creating Geometry with pfGeoSet”, describes how to create surfaces and geometric objects.

- Chapter 8, “Specifying the Appearance of Geometry with pfState and pfGeoState”, describes how to define the appearance of geometry.

- Chapter 9, “Placing Geometry in a Scene ”, describes how to reorient and scale geometry.

- Chapter 10, “Controlling Frame Rate”, describes how to control the frame rate.

- Chapter 11, “Multiprocessing”, describes how to use multiprocessing.

- Chapter 12, “Database Paging”, describes how to page the database efficiently.

- Chapter 13, “Intersection Testing”, describes how to check for intersections.

- Chapter 14, “Creating a User Interface”, describes how to create a user interface.

- Chapter 15, “Optimizing Performance”, describes how to optimize an application.

- Appendix A, “Building a Visual Simulation Application Using libpf” follows the development of a skeleton application program that introduces you to the basic concepts involved in creating a visual simulation application with `libpf`.

- Appendix B, “Building a Visual Simulation Application Using libpfv” describes how to use the library `libpfv` to build an application using a graphical viewer.

- Appendix C, “Image Gallery” contains some sample images created by using OpenGL Performer to display various scene databases.

These chapters are followed by a glossary and an index.

## Conventions

This guide uses the following typographical conventions:

Bold |  | Used for function names with parentheses appended to the name. Also, bold lowercase letters represent vectors, and bold uppercase letters denote matrices.
Italics |  | Indicates variables and book titles.
`Fixed-width` |  | Used for filenames, operating system command names, command-line option flags, code examples, and system output.
`Bold Fixed-width` |  | Indicates user input, such as items you type in from the keyboard.

Note that in some cases it is convenient to refer to a group of similarly named OpenGL Performer functions by a single name; in such cases an asterisk is used to indicate all the functions whose names start the same way. For instance, pfNew*() refers to all functions whose names begin with “pfNew”: pfNewChan(), pfNewDCS(), pfNewESky(), pfNewGeode(), and so on.

All code examples for IRIX and Linux are available in both C and C++ forms in the source directory `/usr/share/Performer/src/pguide`; on Windows the examples can be found in `%PFROOT%/Src/pguide`.

## Internet and Hardcopy Reading for the OpenGL Performer Series

The OpenGL Performer series include the following in printed and online versions:

- OpenGL Performer Programmer's Guide

- IRIX, Linux, or WindowsOpenGL Performer Getting Started Guide (this book)

These and all other SGI documents are available online at the following URL:

    http://techpubs.sgi.com

For general information about OpenGL Performer, use the following URL:

    http://www.sgi.com/software/performer

The `info-performer` mailing list provides a forum for discussion of OpenGL Performer including technical and nontechnical issues. Subscription requests should be sent to `info-performer-request@sgi.com`. Much like the comp.sys.sgi.* newsgroups on the Internet, it is not an official support channel but is monitored by several interested SGI employees familiar with the toolkit. The OpenGL Performer mailing list archives are located at the following URL:

    http://oss.sgi.com/projects/performer/mail/info-performer/

## Reader Comments

If you have comments about the technical accuracy, content, or organization of this document, please tell us. Be sure to include the title and document number of the manual with your comments. (Online, the document number is located in the front matter of the manual. In printed manuals, the document number is located at the bottom of each page.)

You can contact us in any of the following ways:

- Send e-mail to the following address:

      techpubs@sgi.com

- Use the Feedback option on the Technical Publications Library World Wide Web page:

      http://techpubs.sgi.com

- Contact your customer service representative and ask that an incident be filed in the SGI incident tracking system.

- Send mail to the following address:

  Technical Publications
  SGI
  1600 Amphitheatre Pkwy., M/S 535
  Mountain View, California 94043-1351

- Send a fax to the attention of “Technical Publications” at +1 650 932 0801.

We value your comments and will respond to them promptly.

Prev | Table of Contents | Next
New Features in This Guide |  | Part I. Overview of OpenGL Performer