Introduction to Computer Graphics, Fall 2002

CS 445 (Undergrad) / CS 645 (Graduate)

Time: Tuesday/Thursday 5:00 - 6:15
Place: OLS 011
Instructor:
David Brogan (Olsson Room 217), dbrogan@cs.virginia.edu
Office Hours: I have no set office hours for this course, though I am frequently in my office. If you want to be certain to reach me, please schedule an appointment with me via email.
Office Phone: 982-2211
Assistant:
Yannick Loitiere, ycl2r@cs.virginia.edu
Office Hours: TBA
Web Page http://www.cs.virginia.edu/~gfx/Courses/2002/Intro.fall.02/
Description: This course introduces techniques for 2D and 3D computer graphics, including modeling and representation, illumination and shading, rendering, texturing, and advanced software tools. The student will learn fundamental algorithms and techniques and gain the knowledge necessary to understand and augment the latest innovations in computer graphics.
Prerequisites:
  • Because programming is required for this course, a grade of C or better in CS 216 is a prerequisite. Data structures (pointers, lists, and memory allocation) will be used extensively.
  • Basic linear algebra, geometry, and calculus
Textbooks:
  • Computer Graphics, Angel (3rd Edition)
  • OpenGL Programming Guide, The Official Guide to Learning OpenGL, Woo, Neider, Davis, and Shreiner (3rd Edition)
  • (Not Required, but a great reference book) Computer Graphics: Principles and Practice, Foley, van Dam, Feiner, and Hughes
Assignments: There will be four or five programming assignments in this course. All assignments must be written in C or C++ using OpenGL and GLUT libraries. No prior knowledge of OpenGL is required for this course, as you will learn it during the semester.

The program source code will be read. Source code documentation and organization should make your programs easy to read and convey your understanding of the implemented functions. Poor documentation and programming style will result in a lower score. More detailed instructions regarding required documentation will be provided with each assignment.

The assignments will require implementation of many of the following computer graphics processes: line and triangle rasterization and drawing, 3D transformations, clipping and depth culling, splines and surfaces, lighting and texture mapping.

Tests: One midterm and one final
Grading: Assignments: 50%, Midterm: 20%, Final: 25%, Class Participation: 5%
Late Days: Students have five late days that they can use in any way during the semester. Each late day extends the due date 24 hours.. Use your late days wisely; you will not be granted additional late days without a written note from the Dean's office.
Honor Code: The honor code applies to all work turned in for this course. In particular, all code and documentation should be entirely your own work. You may consult with other students about high-level design strategies related to programming assignments, but you many not copy code or use the structure or organization of another students program. Said another way, you may talk with one another about your programs, but you cannot ever look at another student's code nor let another student look at your own code. Each assignment will include a specific Honor Code Guideline referring to the use of online materials.
Lectures: The following topics will be presented during the semesters lectures. This is only a rough outline of the schedule and entire topics may be added or removed.  The class web page will document the lecture schedule and provide access to the slides used for each lecture. Consult it often.

 

 

Date Topic Reading Slides
Week 1 Aug 29 Introduction, Hardware Angel Ch. 1 PowerPoint
Week 2 Sept 3 Mathematical Principles Angel Appendix B PowerPoint
  Sept 5 Transformations Angel 179 - 202 PowerPoint
Week 3 Sept 10 OpenGL
Assignment 1 Out
Red Book Ch. 1 - 4 PowerPoint
Sept 12 3D Transformations and Euler Angles
Assignment 0 Out
Angel Ch. 4 PowerPoint
Week 4 Sept 17 Circle and Triangle Rasterization
Assignment 0 Due (5:00 p.m.)
Angel 8.9 and 8.10 HTML
HTML
Sept 19 Polygon Rasterization Angel 8.11 PowerPoint
Week 5 Sept 24 Polygon Clipping Angel 8.1 - 8.7 PowerPoint
  Sept 26 OpenGL and Transformations

Assignment 1 Due (5:00 p.m.)

Angel 5.1 - 5.9
Angel 1.5 - 1.6
PowerPoint
Week 6 Oct 1 Homogeneous Coordinates
Camera Transformations
  Slides
Oct 3 Color Angel 1.4, 8.13.3 PowerPoint
Week 7 Oct 8 Reading Holiday    
Oct 10 Color

Assignment 2 Out

Angel 1.4, 2.5, 7.45, 8.13 PowerPoint
Week 8 Oct 15 Midterm
Old Midterms (PDF, PDF)
   
  Oct 17 Luebke / Loitiere Lecture    
Week 9 Oct 22 C++ Programming / Assign 2 Review    
Oct 24 Lighting Angel 6.1 - 6.4 PowerPoint
Week 10 Oct 29 Lighting

Assignment 2 Due (5:00 p.m.)

Angel 6.5 - 6.11 PowerPoint
Nov 31 Radiosity Angel 13.1 - 13.5 PowerPoint
Week 11 Nov 5 Textures

Assignment 3 Out

Angel 7.6 - 7.10 PowerPoint
Nov 7 Antialiasing Angel 7.11 PowerPoint
Week 12 Nov 12 Antialiasing and Assign 3 Review   PowerPoint
  Nov 14 Visibility (BSP Trees, Z-buffer, Warnock's Algorithm) Angel 5.6, 9.10.3, 9.10.4 PowerPoint
Week 13 Nov 19 Orientation Representations

Assignment 3 Due (5:00 p.m.)

Angel 4.11 PowerPoint
Nov 21 Hermite Curves

Assignent 4 Out

Angel 10.1 - 10.5 PowerPoint
Week 14 Nov 26 Bezier Curves Angel 10.6 - 10.10, 4.10,  A.11 PowerPoint
Nov 28 Thanksgiving    
Week 15 Dec 3 Making Movies   PowerPoint
  Dec 5 Final Exam Review

Assignment 4 Due (5:00 p.m)

  PowerPoint
Week 16 Dec 12 Final - 7:00 p.m. (Olsson 011)