ECE 595 / CS491 / CS591
Real-Time Rendering and Graphics Hardware



Welcome to the Real-time Rendering and Graphics Hardware course at the University of New Mexico. In this course, you will learn everything you need to know to implement a bleeding-edge, real-time rendering engine. Topics include graphics architectures, GPU programming, real-time global illumination algorithms, user interaction, and other real-time techniques. This course will be useful for folks interested in image processing and computer vision as well as those interested in doing general purpose, parallel computing on the graphics hardware.

Announcements

The final project description now available here.

05/07/07 Final: Final examination [pdf] [doc]

Class Information

Instructor: Pradeep Sen
Class Location: ECE Room 225C
Class Time: M, W 4:00 - 5:15pm
Textbook: Tomas Akenine-Moller and Eric Haines. Real-Time Rendering, 2nd Edition. AK Peters, 2002
Complete syllabus is available here. Please read it carefully and let me know if you have any questions.

Lectures

In this section, we provide the slides to the lectures:
Date Description Slides Notes
1/17/07 Lecture 1: Introduction, overview of the course, introduction to the real-time graphics pipeline [pdf] [pdf]
1/22/07 Lecture 2: Graphics Pipeline I: Vertex transformation and rasterization [pdf] [pdf]
1/24/07 Lecture 3: Graphics Pipeline II: Rasterization, Texturing and Framebuffer Ops [pdf] [pdf]
1/29/07 Lecture 4: Application-side opitmizations, frustum/occlusion culling [pdf] N/A
1/31/07 Lecture 5: Portals & occlusion, scene graphs [pdf] N/A
2/05/07 Lecture 6: Game engines, introduction to the OpenGL API, vertex programs [pdf] N/A
2/07/07 Lecture 7: Vertex and fragment programs [pdf] N/A
2/12/07 Lecture 8: DirectX [pdf] N/A
2/19/07 Lecture 9: High-level Shading Languages [pdf] N/A
2/21/07 Lecture 10: Cg and NPR shaders (substitute: Joe Kniss) N/A N/A
2/26/07 Lecture 11: Introduction to the texturing pipeline [pdf] N/A
2/28/07 Lecture 12: Texture mapping Part II [pdf] N/A
3/05/07 Lecture 13: Hard Shadows [pdf] N/A
3/19/07 Lecture 14: Going over the midterm N/A [pdf]
3/21/07 Lecture 15: Soft shadows [pdf] N/A
3/26/07 Lecture 16: Introduction to Illumination [pdf] N/A
3/28/07 Lecture 17: Spherical Harmonics & Irradiance Maps [pdf] N/A
4/2/07 Lecture 18: Precomputed Radiance Transport (PRT) [pdf] N/A
4/4/07 Lecture 19: Precomputed Radiance Transport (PRT) II [pdf] N/A
4/9/07 Lecture 20: Geometry and Level of Detail (LOD) [pdf] N/A
4/11/07 Lecture 21: Procedural Geometry [pdf] N/A
4/16/07 Lecture 22: Real-time physics simulations [pdf] N/A
4/18/07 Lecture 23: GPGPU N/A [web]
4/23/07 Lecture 24: Real-time ray tracing [pdf] N/A
05/07/07 Final: Final examination [pdf] [doc]

Reading

Due Description
1/22/07 Read through Section 3.1.5 of Moller and Haines
1/24/07 Read through end of Chapter 3 of Moller and Haines
1/29/07 Read Olano and Greer's paper on homogeneous rasterization.
1/31/07 Read The Wizardry of Id and Gordon and Chen's paper on BSP trees. Also Chapter 9 of Moller and Haines through section 9.5.
2/07/07 Read the ARB vertex program specification and the ARB fragment program specification. Familiarize yourself with the instructions in both kinds of programs. Also the OpenGL state machine some of you asked about can be found here.
2/14/07 Read Blythe's paper on the Direct3D10 specification, Proudfoot et al.'s paper on the Stanford Real-time Shading Language and Mark et al.'s paper on Cg.
3/26/07 STAR report on soft shadow algorithms.
4/25/07 STAR report on real-time ray tracing.

Assignments and Projects

Project 1 - Software rendering system
In this project you will write a software-based scanline rendering system. The original project description can be found here. The zipped up directory which contains the code to get you started can be found here. This project is due Monday February 12, 2007 at 11:59:59. Email me the zipped version of your directory (without the executables, just the source code) by the deadline.

Homework 1 - Vertex and fragment programs
In this homework assignment, you will get your chance to play around with vertex and fragment programs in assembly. The homework description is here, and the zipped up directory with the template files is here. The homework is due on Monday, February 26, 2007 at 11:59:59. Email me the zipped version of your directory (without the executables, just the source code) by the deadline.

Homework 2 - Cg and Texturing
In this homework assignment, you will play around a bit with Cg as well as prove some of the properties of the Fourier Transform we used in class to discuss aliasing in textures. The homework description is here, and the zipped up directory with the template file is here. The software portion of the homework is due on Monday, February 26, 2007 at 11:59:59, the written portion is due at the beginning on class that same day. Ken Perlin's paper which discusses the marble shader can be found here.

Final Project - Software rendering system
In this project, you will implement one of the algorithms we talked about in class this semester. Which algorithm you choose to work on is up to you. The details on the project can be found here. This project is due Wednesday May 9, 2007 at 11:59 PM.