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.