IRIX 6.4 » Books » Developer »
OpenGL Performer Getting Started Guide
(document number: 007-3560-002 / published: 2000-11-14)
table of contents | additional info | download find in page
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 or Linux operating system forms the foundation of a powerful suite of tools and features for creating real-time 3D graphics applications.
The OpenGL Performer Getting Started guide introduces the most important concepts and classes in the Performer libraries. A full explanation of all 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 performance on SGI systems.
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:
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 at peak efficiency on each graphics platform produced by SGI; 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. If you are a newcomer to these topics, see the references listed under “Bibliography” at the end of this introduction and examine the glossary for definitions of terms or usage unique to OpenGL Performer.
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 you can minimize your application development time while maximizing the application's performance and visual impact.
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
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” 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, “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.
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, IRIX or Linux 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.
Most code examples in this guide are written in C; some are in C++. All code examples are available in both C and C++ forms in the source directory /usr/share/Performer/src/pguide.
Internet and Hard Copy Reading for the OpenGL Performer Series
The OpenGL Performer series include the following in printed and online versions:
To read these online books, point your browser at:
For general information about Performer, point your browser at:
Answers to common questions
Electronic forum for discussions about OpenGL 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 Performer mailing list archives are located at: http://reality.sgi.com/performer
For other related reading, see “Bibliography”.
You should be familiar with most of the concepts presented in the first few books listed here—notably Computer Graphics: Principles and Practice and the OpenGL books—to make the best use of OpenGL Performer and this programming guide. Most of the other books listed here, however, delve into more advanced topics and are listed as further reading for those interested. Information is also provided on electronic access to SGI files containing answers to frequently asked OpenGL Performer questions.
For a general treatment of a wide variety of graphics-related topics, see:
Foley, J.D.,
van Dam, A.,
Feiner, S.K., and
Hughes, J.F., Computer Graphics: Principles and Practice, 2nd Ed. Reading, Mass.: Addison-Wesley Publishing Company, Inc., 1990.
Newman, W.M., and
Sproull, R.F., Principles of Interactive Computer Graphics, 2nd Ed. New York: McGraw-Hill, Inc., 1979.
For specific topics of interest to developers using OpenGL Performer, also see:
Akeley, Kurt, “RealityEngine Graphics,” Computer Graphics Annual Conference Series (SIGGRAPH), 1993. pp. 309-318.
Jones,
Michael,
Clay, Sharon, Helman, James, Rohlf, John, Bigos, Andy, Tarbouriech, Philippe, Hoffman, Wes, Johnston, Eric, Limber, Michael, and Watson, Scott, ”Designing Real-Time 3D Graphics for Entertainment,” Course Notes of 1997 SIGGRAPH Course #6.
Willis, L. R., Jones, M. T., and
Zhao, J. “A Method for Continuous Adaptive Terrain'', Proceedings of the 1996 Image Conference. June 23-28, 1996, Scottsdale Arizona.
Montrym,
John S.,
Baum, Daniel R.,
Dignam, David L.,
Migdal, Christopher J., “InfiniteReality: A Real-Time Graphics System,” Computer Graphics Annual Conference Series (SIGGRAPH), 1997. pp. 293-302.
Rohlf, John and Helman,
James, “IRIS Performer: A High Performance Multiprocessing Toolkit for Real-Time 3D Graphics,” Computer Graphics Proceedings, Annual Conference Series (SIGGRAPH), 1994. pp. 381-394.
Shoemake, Ken. “Animating Rotation with Quaternion Curves,” SIGGRAPH `85 Conference Proceedings Vol 19, Number 3, 1985.
OpenGL Graphics Libraries
For information about
OpenGL, see:
Neider, Jackie,
Davis, Tom, and
Woo, Mason, OpenGL Programming Guide. Reading, Mass.: Addison-Wesley Publishing Company, Inc., 1993. A comprehensive guide to learning OpenGL.
OpenGL Architecture Review Board, OpenGL Reference Manual. Reading, Mass.: Addison-Wesley Publishing Company, Inc., 1993. A compilation of OpenGL reference pages.
The OpenGL Porting Guide, a Silicon Graphics publication shipped in IRIS InSight-viewable on-line format. Provides information on updating IRIS GL-based software to use OpenGL.
X, Xt, IRIS IM, and Window Systems
In conjunction with OpenGL, you may wish to learn about the
X Window System, the Xt Toolkit Intrinsics library, and IRIS IM (though note that with OpenGL Performer's pfWindow routines, basics of windows are handled for you). For information on X, Xt, and Motif, see the O'Reilly X Window System Series, Volumes 1,2, 4, and 5 (usually referred to simply as “O'Reilly” with a volume number):
Nye, Adrian, Volume One: Xlib Programming Manual. Sebastopol, California: O'Reilly & Associates, Inc., 1991.
Volume Two: Xlib Reference Manual, published by O'Reilly & Associates, Inc., Sebastopol, California.
Volume Four: X Toolkit Intrinsics Programming Manual, by
Adrian Nye and
Tim O'Reilly, published by O'Reilly & Associates, Inc., Sebastopol, California.
Volume Five: X Toolkit Intrinsics Reference Manual, published by O'Reilly & Associates, Inc., Sebastopol, California.
For information on IRIS IM, Silicon Graphics' port of OSF/Motif, and on making your application interact well with the SGI desktop, see these SGI publications:
IRIS IM Programming Guide
IRIX Interactive Desktop User Interface Guidelines
IRIX Interactive Desktop Integration Guide
All three of these books are shipped in IRIS InSight-viewable online format.
For information about visual simulation and the use of simulation systems in training and research, see:
Rolfe, J.M., and
Staples, K.J., eds. Flight Simulation. Cambridge: Cambridge University Press, 1986. Provides a comprehensive overview of visual simulation from the basic equations of motion to the design of simulator cabs, optical and display systems, motion bases, and instructor/operator stations. Also includes a historical overview and an extensive bibliography of visual simulation and aerodynamic simulation references.
Rougelot, Rodney S. “The General Electric Computer Color TV Display,” in Faiman, M., and J. Nievergelt, eds. Pertinent Concepts in Computer Graphics. Urbana, Ill.: University of Illinois Press, 1969, pp. 261-281. This extensive report gives an excellent overview of the origins of visual simulation. It shows many screen images of the original systems developed for various NASA programs and includes the first real-time textured image. This article provides the basis for understanding the historical development of computer image generation and real-time graphics.
Schacter, Bruce J., ed. Computer Image Generation. New York: John Wiley & Sons, Inc., 1983. Reviews the computer image generation process and provides a detailed analysis of early approaches to system design and implementation. The bibliography refers to early papers by the designers of the first image-generation systems.
Mathematics of Flight Simulation
Stevens, Brian L., and
Frank L. Lewis. Aircraft Control and Simulation. New York: John Wiley & Sons, Inc., 1992. This book describes the complete implementation of a
flight-dynamics model for the F-16 fighter aircraft. It provides the basic equations of motion and explains how the more complex issues are handled in practice. Some source code, in Fortran, is included.
Kalawsky, Roy S. Science of Virtual Reality and Virtual Environments. Reading, Mass.: Addison-Wesley Publishing Company, Inc., 1993.
MÖller, Tomas, and Haines, Eric. Real Time Rendering. AK Peters, LTD, 1999. Explains the concepts and algorithms used in computer-aided design, visual simulation, virtual reality worlds, and games. Focuses on the graphics pipeline, with chapters on transforms, optimization, visual appearance, polygon manipulation, collision detection, and special effects. The ideal springboard to the techniques used in OpenGL Performer.
These two books address geometric reasoning in general, rather than any specifically computer-related or OpenGL Performer-specific topics:
Abbott, Edwin A. Flatland: A Romance of Many Dimensions, 6th Ed. New York: Dover Publications, Inc., 1952. The story of A. Square and his journeys among the dimensions.
Polya, George. How to Solve It: A New Aspect of Mathematical Method, 2nd Ed. Princeton, NJ: Princeton University Press, 1973.
The proceedings of the
I/ITSEC (Interservice/Industry Training, Simulation, and Education Conference) are a primary source of published visual simulation experience. In the past this conference has been known as the National Training Equipment Center/Industry Conference (NTEC/IC) and the Interservice/Industry Training Equipment Conference (I/ITEC). Proceedings are available from the National Technical Information Service (NTIS). Here are NTIS order numbers for several of the older proceedings:
Seventh N/IC, November, 1974: AD-A000-970 NTEC
Eighth N/IC, November, 1975: AD-A028-885 NTEC
Ninth N/IC, November, 1976: AD-A031-447 NTEC
Tenth N/IC, November, 1977: AD-A047-905 NTEC
Eleventh N/IC, November, 1978: AD-A061-381 NTEC
First I/ITEC, November, 1979: AD-A077-656 NTEC
Third I/ITEC, November, 1981: AD-A109-443 NTEC
The
IMAGE Society is dedicated solely to the advancement of visual simulation technology and its applications. It holds conferences and workshops, the proceedings of which are an excellent source of advice and guidance for visual simulation developers. The society can be reached through e-mail at image@.asu.edu. Some of the IMAGE proceedings published by the Air Force Human Resources Lab AFHRL at Williams AFB prior to the formation of the IMAGE Society are also available from the NTIS. Order numbers are:
IMAGE, May, 1977: AD-A044-582 AFHRL
IMAGE II (closing), July, 1981: AD-A104-676 AFHRL
IMAGE II (proceedings), November, 1981: AD-A110-226 AFHRL
The
Society of Photo-Optical Instrumentation Engineers (SPIE) also has articles of interest to visual simulation developers in their conference proceedings. Some of the interesting publications are:
Vol. 17, Photo-Optical Techniques in Simulators, April, 1969
Vol. 59, Simulators & Simulation, March, 1975
Vol. 162, Visual Simulation & Image Realism, August, 1978
Survey Articles in Magazines
Aviation Week & Space Technology, January 17, 1983. Special issue on visual simulation.
Fischetti, Mark A., and
Truxal, Caro. “Simulating the Right Stuff.” IEEE Spectrum, March, 1985, pp. 38-47.
Schacter, Bruce. “Computer Image Generation for Flight Simulation.” IEEE Computer Graphics & Applications, October, 1981, pp. 29-68.
Schacter, Bruce, and
Narendra Ahuja. “A History of Visual Flight Simulation.” Computer Graphics World, May, 1980, pp. 16-31.
Tucker, Jonathan B., “Visual Simulation Takes Flight.” High Technology Magazine, December, 1984, pp. 34-47.
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:
Use the Feedback option on the Technical Publications Library World Wide Web page:
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.
OpenGL Performer Getting Started Guide
(document number: 007-3560-002 / published: 2000-11-14)
table of contents | additional info | download
Front Matter
New Features in This Guide
About This Guide
Part I. Overview of OpenGL Performer
Part II. Programming With OpenGL Performer
Appendix A. Building a Visual Simulation Application
Appendix B. Image Gallery
Glossary
Index
home/search |
what's new |
help
|