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. **

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.

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 | ||

Nov 6 | Animation (Rahul, cont'd) | |||

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) |