About This Guide

Welcome to the IRIS Performer™ application development environment. IRIS Performer provides a programming interface (with ANSI C and C++ bindings) for creating real-time graphics applications and offers high-performance rendering in an easy-to-use 3D graphics toolkit. IRIS Performer interfaces to both the IRIS Graphics Library™ (also known as IRIS GL™) and the OpenGL® graphics library; these libraries combine with the IRIX™ operating system to form the foundation of a powerful suite of tools and features for creating real-time 3D graphics applications on Silicon Graphics systems.

Why Use IRIS Performer?

Use IRIS Performer for building visual simulation applications and virtual reality environments, for rapid rendering in on-air broadcast and virtual set applications, for assembly viewing in large simulation-based design tasks, or to maximize the graphics performance of any application. Applications that require real-time visuals, free-running or fixed-frame-rate display, or high-performance rendering will benefit from using IRIS Performer.

IRIS Performer drastically reduces the work required to tune your application's performance. General optimizations include the use of highly-tuned routines for all performance critical operations and the reorganization of graphics data and operations for faster rendering. IRIS Performer also handles Silicon Graphics architecture-specific tuning issues for you by selecting the best rendering and multiprocessing modes at run time based on the system configuration.

IRIS Performer is an integral part of the RealityEngine™ and Impact™ visual simulation systems and provides the interface to advanced features available exclusively with RealityEngine graphics. IRIS Performer teamed with RealityEngine or Impact provides a sophisticated image generation system in a powerful, flexible, and extensible software environment. IRIS Performer is also tuned to operate at peak efficiency on each graphics platform produced by Silicon Graphics; you don't need the hardware sophistication of RealityEngine graphics to benefit from IRIS Performer.

What You Should Know Before Reading This Guide

To use IRIS 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” aren't explained in this guide) and it will help if you're familiar with at least one of the graphics libraries. If you're 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 IRIS Performer.

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

How to Use This Guide

The best way to get started is to turn to Chapter 1, “Getting Acquainted With IRIS Performer,” which takes you on a tour of some demo programs. These programs let you see for yourself what IRIS Performer does. Even if you aren't developing a visual simulation application, you might want to look at the demos to see high-performance rendering in action. At the end of Chapter 1 you'll find suggestions pointing to possible next steps; alternatively, you can browse through the summary below to find a topic of interest.

What This Guide Contains

This guide is divided into fourteen chapters and an appendix:

Conventions

This guide uses the following typographical conventions:

Bold 

is used for function names, with parentheses appended to the name. Also, bold lowercase letters represent vectors, and bold uppercase letters denote matrices.

Italics  

indicates filenames, IRIX command names, command-line option flags, variables, and book titles.

Fixed-width 

is used for code examples and system output.

Bold Fixed-width 


indicates user input, items that you should type in from the keyboard.

Note that in some cases it's convenient to refer to a group of similarly named IRIS 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.

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 IRIS GL or OpenGL books—to make the best use of IRIS 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 Silicon Graphics' files containing answers to frequently asked IRIS Performer questions.

Computer Graphics

For a general treatment of a wide variety of graphics-related topics, see:

  • Foley, J.D., A. van Dam, S.K. Feiner, and J.F. Hughes. Computer Graphics: Principles and Practice, 2nd Ed. Reading, Mass.: Addison-Wesley Publishing Company, Inc., 1990.

  • Newman, W.M., and R.F. Sproull, Principles of Interactive Computer Graphics, 2nd Ed. New York: McGraw-Hill, Inc., 1979.

For specific topics of interest to developers using IRIS Performer, also see:

  • Akeley, Kurt, “RealityEngine Graphics,” Computer Graphics Annual Conference Series (SIGGRAPH), 1993. pp. 309-318.

  • Rohlf, John and James Helman, “IRIS Performer: A High Performance Multiprocessing Toolkit for Real-Time 3D Graphics,” Computer Graphics Proceedings, Annual Conference Series (SIGGRAPH), 1994, pp. 381-394.

  • Helman, James, Sharon Clay, Wes Hoffman, Eric Johnston, Michael Jones, Michael Limber, and Philippe Tarbouriech, “Designing Real-Time 3D Graphics for Entertainment,” Course Notes of 1995 SIGGRAPH Course #6, 1995.

  • Shoemake, Ken. “Animating Rotation with Quaternion Curves,” SIGGRAPH `85 Conference Proceedings Vol 19, Number 3, 1985.

The IRIS GL and OpenGL Graphics Libraries

For information about IRIS GL, see these Silicon Graphics publications:

  • Graphics Library Programming Guide, Volumes I and II

  • Graphics Library Programming Tools and Techniques

To order all three of the above manuals, call 1-800-800-SGI1 (in the U.S. and Canada) and specify part number M4-GLGT-5.2. Outside the U.S. and Canada, please contact your local sales office or distributor.

For information about OpenGL, see:

  • Neider, Jackie, Tom Davis, and Mason Woo, 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 as part of the IRIS Developer Option. 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 if you use IRIS Performer's pfWindow routines, windows are handled for you; in that case you don't need to know about any of these topics). 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 Silicon Graphics desktop, see these Silicon Graphics publications:

  • IRIS IM Programming Guide

  • Indigo Magic User Interface Guidelines

  • Indigo Magic Desktop Integration Guide

All three of these books are shipped in IRIS InSight™-viewable on-line format as part of the IRIS Developer Option.

Visual Simulation

For information about visual simulation and the use of simulation systems in training and research, see:

  • Rolfe, J.M., and K.J. Staples, 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.

Virtual Reality

Kalawsky, Roy S. Science of Virtual Reality and Virtual Environments. Reading, Mass.: Addison-Wesley Publishing Company, Inc., 1993.

Geometric Reasoning

These two books address geometric reasoning in general, rather than any specifically computer-related or 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.

Conference Proceedings

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 electronic mail at [email protected]. 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 Carol Truxal. “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.

Internet Resources

Answers to common questions.

  • Silicon Graphics maintains a publicly accessible directory of questions that developers often ask about IRIS Performer, along with answers to those questions. Each question-and-answer pair is provided in a file of its own, named by topic. To obtain any of these files, use anonymous ftp to connect to sgigate.sgi.com; then cd to the directory /pub/Performer/selected-topics and use ls to see a list of available topics. Alternatively, use a World Wide Web browser to look at ftp://sgigate.sgi.com/pub/Performer/selected-topics .

Electronic forum for discussions about IRIS Performer.

  • The info-performer mailing list provides a forum for discussion of IRIS Performer including technical and non-technical issues. Subscription requests should be sent to [email protected]. Much like the comp.sys.sgi.* newsgroups on the Internet, it isn't an official support channel but is monitored by several interested SGI employees familiar with the toolkit.

World Wide Web page.

  • Silicon Graphics maintains a public Web page for IRIS Performer at http://www.sgi.com/Technology/Performer.html . This page can be accessed using a Web browser such as Netscape™. This guide, errata and amendments may be made available through this page.