next up previous contents
Next: Contents   Contents

Advanced Graphics Programming Techniques Using OpenGL

David Blythe
Silicon Graphics

Tom McReynolds

Copyright ©1996-2000 by Tom McReynolds and David Blythe.
All rights reserved

SIGGRAPH 2000 Course 32


This advanced course demonstrates sophisticated and novel computer graphics programming techniques, implemented in C using the widely available OpenGL library.

By explaining the concepts and demonstrating the techniques required to generate images of greater realism and utility, the course helps students achieve two goals: they gain a deeper insight into OpenGL functionality and computer graphics concepts, while expanding their ``toolbox'' of useful OpenGL techniques.


David Blythe David Blythe is Chief Engineer in the Advanced Graphics group at Silicon Graphics. David joined SGI in 1991 and has contributed to the development of the RealityEngine and InfiniteReality graphics systems. He has worked extensively on implementations of the OpenGL graphics library, OpenGL extension specifications, and high-level toolkits built on top of OpenGL. David is currently working on new graphics accelerators as well as contributing to the continuing evolution of OpenGL. His other interests include large-scale system design and interactive photorealism. David has been a course presenter at SIGGRAPH '96-'99 as well as other technical forums. Prior to joining SGI, David was a visualization scientist at the Ontario Centre for Large Scale Computation and a lecturer at the University of Toronto. David received both a B.S. and M.S. degree in computer science from the University of Toronto.


Brad Grantham Brad Grantham contributes at VA Linux Systems, Inc. to the advancement of Linux, OpenGL, and 3D graphics. Brad is also an Adjunct Lecturer at Santa Clara University, where he specializes in helping students write interactive graphics applications using OpenGL.

Brad has presented at several past SIGGRAPH conferences and the Game Developers' Conference, and previously contributed at Silicon Graphics to the design and implementation of high-level graphics toolkits, including the Fahrenheit Scene Graph, OpenGL Optimizer, and IRIS Performer. Brad's prior experience also includes UNIX kernel code and imaging codecs. Brad received a B.S. in Computer Science from Virginia Tech in 1992.


Tom McReynolds

Tom McReynolds works as a manager and software engineer at Gigapixel Inc., a computer graphics intellectual property company which has recently merged with 3dfx Inc. He currently works on computer graphics hardware specification, simulation, and verification.

Before that, he worked in the Advanced Graphics Software group at Silicon Graphics. He has implemented OpenGL extensions, done OpenGL performance work, and worked on IRIS Performer, a real-time visualization library that uses OpenGL.

Prior to SGI, he worked at Sun Microsystems, where he helped develop graphics hardware support software and graphics libraries, including XGL.

Tom also works as an adjunct professor at Santa Clara University, where he teaches courses in computer graphics using the OpenGL library. He has also presented at the X Technical Conference, was a course organizer and presenter at SIGGRAPH '96 through '99, and presented for SGI at their 1996 Developer Forum, and at SGI's 1997 OpenGL Developer's Workshop.


Scott R. Nelson Scott Nelson is a Principal Engineer at Intel doing research on 3D graphics architectures in the Microcomputer Research Labs. Before moving to Intel, Scott spent more than ten years at Sun Microsystems developing 3D graphics accelerator architectures. He contributed to the development of the GT, ZX, and Elite3D graphics accelerators. Before Sun, Scott worked for eight years at Evans & Sutherland developing graphics hardware. He received his B.S. degree in Computer Science from the University of Utah. Scott was a course organizer and presenter at SIGGRAPH '91 and a course presenter at SIGGRAPH '98 and '99.


Other Contributers

Celeste Fowler (Author) Celeste Fowler divides her time between consulting and creating educational animations for Scripps Institution of Oceanography. Previously Celeste worked on the OpenGL imaging pipeline for the InfiniteReality graphics system and on the OpenGL display list implementation for InfiniteReality and RealityEngine in the Advanced Systems Division at Silicon Graphics.

Celeste attended Princeton University where she researched radiosity techniques and TA'd courses in computer graphics and programming systems.


Simon Hui (Author) Simon Hui was a software engineer at 3Dfx Interactive, Inc. He worked on OpenGL and other graphics libraries for PC and consumer platforms.

Prior to joining 3Dfx, Simon worked on IRIS Performer, a realtime graphics toolkit, in the Advanced Systems Division at Silicon Graphics. He has also worked on OpenGL implementations for the RealityEngine and InfiniteReality. Simon received a B.A. in Computer Science from the University of California at Berkeley.

Paula Womack (Author)

Paula Womack works on OpenGL and Linux at 3dfx, where she is a principal engineer. Prior to joining 3dfx she worked in the Advanced Systems Division at Silicon Graphics where she managed the OpenGL group and was a member of the OpenGL Architectural Review Board (the OpenGL ARB) that is responsible for defining and enhancing OpenGL. Paula has a B.S. in Computer Engineering from the University of California at San Diego.


Linda Rae Sande (Technical Writer) Linda Rae Sande is a technical writer at PDI/DreamWorks in Palo Alto. A graduate of Northern Arizona University (B.S. in Physics-Astronomy), she has taught college algebra and physical science courses and worked in marketing communications and technical training. As co-author of two physics laboratory textbooks and author of several tutorials and manuals, Linda Rae has many years of experience in book production and production coordination.

Prior to PDI, she was a production editor in technical publications at SGI.


Dany Galgani (Illustrator) Dany Galgani has provided illustrations to Technical Publications at Silicon Graphics for over 9 years. He has illustrated hardware and software manuals, from user's guides to programmer's manuals.

Before that, he did commercial art for advertising agencies and book publishers, including illustrating books in Ortho's ``Do-It-Yourself'' series.

Dany received his degree in the Arts from the University of Paris as well as a CPA.

Email: Mark J. Kilgard

Mark J. Kilgard is a Graphics Software Engineer at NVIDIA Corporation where he works on upcoming NVIDIA GPUs. Mark authored the book Programming OpenGL for the X Window System and implemented the popular OpenGL Utility Toolkit (GLUT) for developing portable OpenGL examples and demos. Previously, Mark worked at Silicon Graphics on the Onyx InfiniteReality graphics supercomputer and on SGI's X Window System implementation. Mark has taught many courses at SIGGRAPH, the Game Developers Conference, and other conferences. Mark's Karaoke rendition of Dolly Parton's ``9 to 5'' can't be beat.


Course Syllabus

8:30 A
Introduction (Blythe and McReynolds)
8:35 B
Basic Techniques (McReynolds)
  1. Texture Mapping
  2. Depth Buffering
  3. Stenciling
  4. Alpha Test
  5. Blending
9:20 C
CAD (Nelson)
  1. Constructive Solid Geometry
  2. Meshing and Tessellation
  3. Improving Numerical Accuracy
  4. Improved Reflection
10:00 Break
10:15 D
Visual Simulation (Blythe)
  1. Tiling Large Textures
  2. Anisotropic Texturing
  3. Developing LOD Models for Geometry
  4. Billboarding
  5. Light Points
11:00 E
Graphics Special Effects (Nelson)
  1. Stencil Dissolves
  2. Compositing
  3. Antialiasing
  4. Motion Blur
  5. Depth of Field
12:00 Lunch
1:30 F
Lighting and Shading I (Blythe)
  1. Environment Maps
  2. Phong Shading
  3. Fresnel Effects
  4. Light Maps
  5. Bump Mapping
2:15 G
Technical Visualization (Grantham)
  1. Volume Rendering
  2. Depth and Transparency Cuing
  3. Scalar Field Visualization
  4. Vector Field Visualization
  5. Technical Illustration
3:00 Break
3:15 H
Lighting and Shading II (McReynolds)
  1. Anisotropic Reflection
  2. Reflection and Refraction
  3. Shadows
  4. Transparency
  5. Complex BDRFs Using Multiple Phong lights
4:00 I
Simulating Natural Phenomena (Grantham)
  1. Particle Systems
  2. Filtered Noise Images
  3. Smoke
  4. Fire
  5. Clouds
  6. Water
  7. Precipitation and Lightning
  8. Fog and Haze
  9. Non-homogeneous effects
5:00 J
Summary, Questions and Answers (Blythe and McReynolds)

next up previous contents
Next: Contents   Contents