CS 448 Lectures -- Real-Time Programmable Shading


1) Introduction & Applications  [PPT Lecture]
   - What is programmable shading
   - Shade trees
   - demos of off-line uses: Toy Story, Jurassic park
   - demos real-time systems (Stanford system and Quake3)
   - Some applications: data visualization, including volume vis

2) RenderMan Shading Language  [PPT Lecture]
    - examples
    - light/surface/volume separation
    - displacement mapping
    - introduction to noise
    - any other background needed for assignment #1

3) Noise (Guest Lecture by Ken Perlin) [HTML Lecture]
   - how it's used
   - how it's generated (offline)
   - how it's generated (realtime)

4) Overview of real-time graphics hardware pipeline
   - Simplified model of OpenGL pipeline; vertex and fragment operations
   - brief intro to multi-pass algorithms
   - Recent hardware enhancments: multi-texturing, texture combiners, etc.
   - limitations of current hardware
   - summarize key OpenGL commands in handout
   - any other background needed for assignment #2

5) Multipass algorithms
   - Wolfgang Heidrich's texture shaders
   - Environment maps
   - Light maps
   - Embossing
   - NV10 bump mapping
   - shadow mapping
   - etc.

6) Current real-time shading systems (as seen by user)
   - PixelFlow
   - Quake
   - SGI (both)
   - Stanford

7) Real-time shading-system implementation
   - Brief overview of relevant compiler technology:
       Map DAG's to instructions
   - PixelFlow system
   - SGI & Stanford systems: use of LBURG
   - Discussion of open issues for multipass compilation

8) Alternative HW/SW approaches to programmable shading
   - multipass (SGI paper)
   - feedback into pipeline
   - extra buffers
   - SIMD/MIMD CPU's (PxFl paper)
   - McCool's HW workshop paper

9) Anti-Aliasing
   - Overview of problem
   - Noise
   - Conditionals
   - language features to help (derivatives & smoothstep)
   - automatic approaches (Erlagen work)

The remaining classes will consist of guest lectures, discussions of
papers, and project presentations.