Lecture Schedule and Assignment Due Dates

Course Outline

Broadly, the course is divided into five segments. Note that we will periodically assign lectures to reviewing problems and working out mathematical examples.

The first segment deals with the mathematics of transformations and viewing, telling you how to move and scale objects to place them correctly in the world. This is the basis for assignment 1. The second segment describes interactive 3D programming and shading, using the OpenGL graphics API and the GLSL shading language. This is the basis for assignment 2, and the more open-ended assignment 4. The third segment describes how to use Bezier and B-spline curves to interpolate points and create shapes. This is the basis for assignment 3, and is the modeling part of the course. The fourth segment describes how to make images once you have a geometric model of the world. This is known as rendering or creating images of computer graphics models. It also covers the basics of writing a ray tracer, that is an alternative to the rasterization-based approach in OpenGL. Assignment 5 requests you to write a raytracer. Finally, we also describe more advanced global illumination techniques in rendering. There is no related programming project (though this topic will be continued if you take the graduate course next semester, and you can optionally do the final project on it). The fifth segment deals very briefly with animation and inverse kinematics. The final project could be on global illumination, animation, or any of the other topics and assignments in the course.

Readings are with respect to the Shirley text (third edition) unless otherwise noted (The text is now only recommended, not required, and the Shirley readings are therefore optional). Note that the course (and midterms/final etc.) is based entirely on the material in lecture; we will not test you on supplementary reading material not covered in lecture.

The homework will generally be due by midnight on the day following what is listed here. Thus, Homework 0a is actually due by 11:59 pm on Wednesday, Aug 29 and so on. However, note that homework 6 is due on Monday Dec 10, just before the final.

Lecture Outlines and Slides

In general, the lecture slides will be posted as and when available to facilitate doing some reading/preparation beforehand. These may of course be changed to correct errors after the lectures. I am making the slides available as powerpoint and PDF handouts (6 slides per page). You may convert them to and print them however you wish.

We will also have online lectures available for some of the material, especially in the first half of the course. For this semester however, we do not intend to record all the lectures.

The slides below also include review problems on the main components of the course. These review problems are important for understanding the technical aspects and mathematics of the course. Try first doing the problems without consulting the solutions as and when the relevant material is covered. We will go over these problems in the designated review session lectures. Note that the solutions may be incomplete/outlines, and you are responsible for fully understanding the answers. A thorough understanding of the problems and solutions will help in doing well on the midterm/final.

We will have visuals and demos for all of the units in the course, which we will occasionally refer to in the lectures to motivate the work. Links to some of these will also be posted here as supplementary materials, or can be found on the slides.

For the OpenGL lectures, I am posting a zip of the source code of the program shown in class. (This includes all three stages: mytest1, mytest2 and mytest3 along with DEMO settings to see the different features of mytest2). The source code in the zip only compiles on Mac OS X (just type make). At this point, you are more familiar with your compilation setup, and can modify and compile as needed on your system. Note that homework 0 already asked you to compile the final state of the program (mytest3) for which we provided skeleton code on a variety of platforms.

Course Schedule

Date Topic Due Related Reading Lecture Slides
Aug 23 Overview of Computer Graphics, course 1 Powerpoint, PDF
Aug 28 Vectors and Linear Algebra Homework 0a 2,5 Powerpoint, PDF
Aug 30 Transformations 1 Homework 0b 6 Powerpoint, PDF
Sep 4 Transformations 2 6,7.2-3, 3.5 RTR(handout) Powerpoint, PDF
Sep 6 Viewing 3.5 RTR(handout) Powerpoint, PDF
Sep 11 OpenGL 1 Homework 1 3, GL chapters 1,3 Powerpoint, PDF
Sep 13 OpenGL shading 10, GL chapters 15, GLSL 2,3 Powerpoint, PDF
Sep 18 OpenGL 2 GL pages 91-110 Powerpoint, PDF
Sep 20 Curves 1 (Optional) handout 4-5.1,8.1-3 of CAGD Powerpoint, PDF
Sep 25 Curves 2 Homework 2 (due Thu 27) (Optional) 15, polar forms paper Powerpoint,PDF
Sep 27 Review of curves Problems,Powerpoint,PDF
Oct 2 Raster Graphics, Color 3 Powerpoint,PDF
Oct 4 Review of Transforms Homework 3 Problems, Powerpoint, PDF
Oct 9 Review of OpenGL (Ravi away)
Oct 11 Midterm (Ravi away)
Oct 16 Ray Tracing Intro 4 Powerpoint, PDF
Oct 18 Ray Tracing Nuts and Bolts 1 Homework 4 milestone Haines chapter (handout) Powerpoint, PDF
Oct 23 Ray Tracing 2 + Acceleration Hanrahan chapter (handout)    Shirley Ch12.3,12.4(handout) See above
Oct 25 Signal Processing 9 Powerpoint, PDF
Oct 30 Signal Processing (cont'd) Homework 4 FvDFH Handout See above
Nov 1 Animation (Rahul) (optional) 17 PDF
Nov 6 Animation (Rahul, cont'd) PDF
Nov 8 Texture Mapping Homework 5 milestone 11 Powerpoint, PDF
Nov 13 Midterm Review
Nov 15 Radiometry CW 2.6.2 handout; (optional) 20 Powerpoint, PDF
Nov 20 Radiometry (cont'd) Homework 5
Nov 27 Rendering Equation Handout; (optional) 24 Powerpoint, PDF
Nov 29 Review on Radiometry Homework 6 (due Dec 10 [Mon]) Problems (PDF)