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

Course Objectives

  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.


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


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


Alex Dahl <>


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.


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.


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 Feb 5/12
Assn 2 10% Ray Tracing II Feb 26
Assn 3 10% Viewing Mar 25
Assn 4 10% Modeling Apr 8
Assn 5 10% TBD Apr 22
Assn 6 10% TBD May 6

Assignments are to be submitted electronically by 11:59 PM on Wednesday of the week listed. Assignments submitted up to two days late (by Friday) 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 Chapter Due
Jan 27/29 Overview / Math Review 1, 2  
Feb 3/5 Ray Tracing 3, 4 Assn 1a
Feb 10/12 Illumination 13 Assn 1
Feb 17/19 Transformations / Viewing 5, 6, 7  
Feb 24/26 Modeling 12, 15, 22 Assn 2
Mar 2/4 Review; MIDTERM    
Mar 9/11 More modeling    
Mar 16/18 Spring Break
Mar 23/25 Shading 10, 23, 24 Assn 3
Mar 30/Apr 1 BRDFs / Texture 11  
Apr 6/8 Texture / Clipping 8 Assn 4
Apr 13/15 Rasterization / Visibility 9, 14  
Apr 20/22 Aliasing / Animation 17 Assn 5
Apr 27/29 Hardware 16  
May 4/6 Light / Color 18, 19 Assn 6
May 11 Review    
May 19-20 FINAL EXAM 3:00pm May 19-3:00pm May 20


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.

For the individual assignments, you are allowed to discuss concepts, assignments and algorithms, but the actual programming is expected to be your own work. Submit a readme with each assignment describing the assignment and also any and all help you received.

Sexual Misconduct and Abuse

Any student who has experienced sexual harassment or assault, relationship violence, and or staking is encouraged to seek support and resources. There are a number of resources available to you.

With that said, as an instructor, I am considered a Responsible Employee, per UMBC’s Policy on Prohibited Sexual Misconduct, Interpersonal Violence, and Other Related Misconduct.  This means that while I am here to listen and support you, I am required to report disclosures of sexual assault, domestic violence, relationship violence, stalking, and/or gender-based harassment to the University's Title IX Coordinator. The purpose of these requirements is for the University to inform you of options, support, and resources.

You can utilize support and resources even if you do not want to take any further action.
You will not be forced to to file a police report, but please be aware, depending on the nature of the offence, the University may take action.

If you need to speak with someone in confidence about an incident, UMBC has the following Confidential Resources available to support you:

Other on-campus supports and resources:

Child Abuse and Neglect Please note that Maryland law requires that I report all closure or suspicions of child abuse or neglect to the Department of Social Service and/or the police.

Additional confidential resources are listed on the UMBC Title IX page.