CMSC 435/634: Introduction to Computer Graphics

MW 2:30-3:45, ITE 231

Now with color coded updates, new....old.

Instructor: Dr. Penny Rheingans ( rheingan AT cs.umbc.edu)

TA: Jake Thompson ( thompso1 AT umbc.edu )

Prerequisites: Math 221, CMSC 313, CMSC 341

Texts: Fundamentals of Computer Graphics, third edition, Peter Shirley, AK Peters, 2009. Required. ISBN 1568814690.

OpenGL Programming Guide (any modern edition), Mason Woo, Jackie Neider, Tom Davis, and Dave Shreiner, Addison Wesley, 2007. Recommended. ISBN 0321481003.
Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition), Scott Meyers, Addison Wesley, 2005. Recommended. ISBN 0321334876.

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

Objectives

After this course, students should be able to:
  1. Explain the foundations of computer graphics: hardware systems, math basis, light and color.
  2. Implement key components of the rendering pipeline, especially visibility, rasterization, viewing, and shading. Discuss the issues involved in implementing other components.
  3. Discover the complexities of modeling realistic objects through modeling complex scenes using a high-level scene description language.
  4. Discuss 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.

Assignments

Programming assignments require the use of the C++ programming language. These assignments may be time-consuming. START RIGHT AWAY! A tentative list is given below:
Weight Description Due Date
Asst 1 5% Simple Scene Feb 14
Asst 2 10% Basic Raycasting Mar 6
Asst 3 10% Modeling Apr 3
Asst 4 10% Interactive Graphics Apr 17
Asst 5 10% Enhanced Ray and RealismMay 8
Students taking the course for graduate credit (i.e. CMSC 634) will be expected to do extra readings and extra assignments (or parts of assignments).

Problems sets will be assigned at intervals. There will be four such assignments and will typically be due a week after the assignment is made. Problem sets are due in class on the due date. Problem sets will account for a total of 10% of the grade. Expected problem sets:
Description Due Date
Problem Set 1 Basic Ray Calculations Feb 22
Problem Set 2 Modeling Calculations Mar 26
Problem Set 3 Viewing Calculations Apr 16
Problem Set 4 Enhanced Ray Calculations Apr 23

Late Policy

Programming assignments are to be submitted electronically before midnight of the day listed. Homework problems are due in class on the day listed. Late assignments can be submitted up to three days late and will be penalized 20 percent of the possible score. Assignments will not be accepted more than three days late. Each student gets one free late assignment (i.e. up to three days late without penalty). Your free late must be claimed in writing on or before the due date. The last assignment of the semester (ie. Asst 5) cannot be turned in late without penalty.

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 may discuss assignments with anyone, but at no time should you show anyone your code or look at anyone else's. Any other help you receive (discussions of approach, use of programming tools, etc.) must be documented. At the beginning of each program you must include a comment 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 comment at the top of your program will result in your program being returned ungraded.

Grades: Grades will be based on programming assignments (45%), homework problems (10%), midterm exam (15%), quizzes (5%), and final exam (25%).

Tentative Schedule

Required reading should be completed BEFORE the first date listed below for maximum benefit. Notes and more notes are available on line.
Date Topic Required Reading (S=Shirley)
Jan 30/Feb 1 Overview; Math review; Display; RendermanS 1-3
Feb 6/8 Basic Raytracing S 4
Feb 13/15 Transforms S 5-6
Feb 20/22 Viewing S 7
Feb 27/29 Pipeline; Antialiasing S 8-10,12.4
Mar 5/7 Texture S 11
Mar 12/14 TBA; MIDTERM
Mar 19/21 Spring Break
Mar 26/28 Modeling S 16
Apr 2/4 Interactive Graphics and Games S 18, 19, 26
Apr 9/11 AnimationS 17
Apr 16/18 Increased Realism S 13, 20, 24, 25
Apr 23/25 Advanced Topics
Apr 30/May 2 VisualizationS 27-28
May 7/9 Future Directions; Wrap Up and Review
May TBA Final Exam,

Other Graphics Resources

This page (http://www.cs.umbc.edu/~rheingan/435/index.html) : syllabus, links to assignments, etc.

RenderMan Resources

OpenGL Resources