SIGGRAPH 99:
Advanced Graphics Programming Techniques using OpenGL

Summary

This course demonstrates the more sophisticated and novel techniques possible using the OpenGL library.

By explaining the concepts and demonstrating the techniques required to generate images of greater realism and utility, the course provides deeper insights into OpenGL functionality and computer graphics concepts.

Objectives

This course builds from the "Programming with OpenGL: an Introduction" course. It shows how to use OpenGL 1.1 to generate professional quality images and applications.

The course focuses on a number of application areas: visual simulation, CAD, games, medical imaging, scientific visualizaton, etc. These applications are used to motivate discussions of various rendering concepts and algorithms, resulting in a better understanding of some of the more subtle OpenGL techniques, and providing a practical grounding in some of the central computer graphics concepts in use today.

Attendees will:

Outline

Full day (6.5 hour) format.

8:30 A.  Introduction       (45 min) Blythe
 8:35 B.  Visual Simulation (Blythe)
          1. Tiling large Textures
          2. Anisotropic Texturing
          3. Developing LOD Models for Geometry
          4. Billboarding
          5. Light Points
 9:20 C.  CAD I             (40 min) Nelson
          1. Constructive Solid Geometry
          2. Meshing and Tessellation
          3. Improving Numerical Accuracy
	  4. Silhouettes
10:00 Break
10:15 D.   Graphics Special Effects   (45 min) Nelson
          1. Stencil Dissolves
          2. Compositing
          3. Antialiasing
          4. Motion Blur
          5. Depth of Field
11:00 E.  Image Processing            (60 min) Grantham
          1. OpenGL Image Processing
          2. Accum Buffer Convolution
          3. Color Space Operations
          4. Image Warping with Textures
          5. Filtered Noise Images
12:00 Lunch 
1:30 F.   CAD II                      (45 min) Blythe
          1. Technical Illustration
          2. Occlusion Culling Techniques
          3. Depth & Transparency Cuing
	  4. Improved Reflection
	  5. Rubber-banding and Locate-highlight
2:15 G    Scientific Visualization    (45 min) McReynolds
          1. Volume Rendering
          2. Scalar Field Visualization
          3. Vector Field Visualization
3:00 Break
3:15 H    Production Graphics         (45 min) Blythe
          1. Character Rendering
          2. Manipulating Large Images
          3. 2D and Line Rendering
	  4. Tone-reproduction
4:00 I.   Simulating Natural Phenomena (55 min) McReynolds
          1. Particle Systems
          2. Smoke
          3. Fire
          4. Clouds
          5. Water
	  6. Precipitation & Lightning
          6. Fog 
5:00 J.  Summary, Question & Answers (variable) All
Course Prerequisites

Strong programming knowledge (especially C), a good grasp of computer graphics concepts, especially texture mapping, and strong familiarity with the OpenGL library. Experience using advanced rendering techniques, image processing, and volume rendering is especially helpful.

Intended Audience

Developers who need to generate more challenging or realistic images using OpenGL. Anyone interested in the practical application of advanced rendering techniques. Application developers who desire to use OpenGL with increased understanding and competence. Anyone interested in deeping their knowledge of computer graphics through the use of practical examples.