Introduction to graphics systems, rasterization, clipping, transformations, modeling, viewing, hidden surface removal, illumination, and shading. Emphasis on realistic, 3D image synthesis.


  1. Understand the foundations of computer graphics: hardware systems, math basis, light and color.
  2. Implement key components of the rendering pipeline. Understand the issues involved in implementing other components.
  3. Come to appreciate the complexities of modeling realistic objects through modeling complex scenes using a high-level scene description language.
  4. Become acquainted with some advanced topics in computer graphics; these might include texturing, animation, physically-based modeling, procedural modeling, curves and surfaces, global illumination, interaction, visualization, and virtual reality.


Dr. Marc Olano <>
ITE 354 (455-3094); Office Hours: TuTh 4:00-5:00


Samit Shivadekar <>
Office Hours: MoWe 1:00-2:30 ITE 352


There is a Piazza site for this class. Everyone enrolled in the class will be added to this site. Class announcements will be made there, so you should either check this site periodically, or make sure it is set to send you messages by email. You should also use it for public communication with your classmates, the TA and instructor. Questions on concepts and algorithms, especially relating to the assignments, should be asked on Piazza.

Please only post messages appropriate for the entire class to see. Be sure to send messages about grades or other private matters directly to the instructor or TA.


MATH 221 (Linear Algebra), CMSC 313 (or other class covering C, C++, and binary logic), CMSC 341 (Data Structures)
(Yes, we will make heavy use of the prerequisites)



Possibly useful


Grades will be based on programming assignments (60%), a midterm exam (15%), and a final exam (25%).

Students taking the course for graduate credit (i.e. CMSC 634) will be expected to do extra readings and extra parts on each assignment.

I do not use blackboard. You may find this grade checker useful for tracking your progress.

Academic Honesty

By enrolling in this course, each student assumes the responsibilities of an active participant in UMBC's scholarly community in which everyone's academic work and behavior are held to the highest standards of honesty. Cheating, fabrication, plagiarism, and helping others to commit these acts are all forms of academic dishonesty, and they are wrong.

All assignments and exams in the course are expected to be your INDIVIDUAL work. You area allowed to discuss concepts and algorithms for programming assignments, but must do the coding yourself: words and math are OK, code is not. Any help you receive must be documented. At the beginning of the readme.txt submitted with each assignment, you must include a statement indicating the sources you used while working on it (excluding course staff and text) and the type of help you received from each. If you received no help, say so. Failure to include this statement with your assignment will result in your program being returned ungraded. For example, "I discussed the algorithms for this project with my study group, including student X and student Y. I also found some helpful descriptions on"


Programming assignments require the use of the C/C++ programming language. These assignments may be time-consuming. START EARLY! A tentative list is given below:

Assignment Weight Description Due Date
Assn 1 10% Ray Tracing I Sep 5/12
Assn 2 10% Ray Tracing II Sep 26
Assn 3 10% Modeling Oct 24
Assn 4 10% Viewing Nov 7
Assn 5 10% Shading Nov 21
Assn 6 10% Acceleration Structures Dec 7

Assignments are to be submitted electronically by 11:59 PM on Tuesday of the week listed. Assignments submitted up to two days late (by Thursday) will be penalized 15 percent of the possible score. Assignments more than two days late will receive a score of 0. Each student gets one free "late" (i.e. up to two days late without penalty, but still zero if later than two days) to apply to any of the assignments. Your free late must be claimed in writing or by email on or before the original due date.

Tentative Schedule

Required reading from the book should be completed BEFORE the first date listed below for maximum benefit

Date Topic FoCG Due
Aug 31 Overview / Math Review 1, 2  
Sep 5/6 Ray Tracing 3, 4, 13 Assn 1a
Sep 12/14 Transformations 5, 6 Assn 1
Sep 19/21 Viewing 7  
Sep 26/28 Modeling 12, 15, 22 Assn 2
Oct 3/5 Review; MIDTERM    
Oct 10/12 Shading 10  
Oct 17/19 Illumination 23, 24  
Oct 24/26 Texture 11 Assn 3
Oct 31/Nov 2 Clipping 8  
Nov 7/9 Rasterization / Visibility   Assn 4
Nov 14/16 Aliasing 9, 14  
Nov 21 Hardware / THANKSGIVING 17 Assn 5
Nov 28/30 Animation 16  
Dec 5/7 Light / Color 18, 19 Assn 6
Dec 12 Review / FINAL    
Dec 14 FINAL EXAM 1:00-3:00