Computer Graphics I (4003-570-02 / 4005-761-02)

Course Information


Instructor: Reynold Bailey
Email: rjb@cs.rit.edu
Phone: (585) 475-6181
Office hours:    Monday, Wednesday, 2:00 PM - 4:00 PM, Room GOL-3517
                         
Class times:    Monday, 4:00 PM - 5:50 PM, Room GOL-3435
                        Wednesday, 4:00 PM - 5:50 PM, Room GOL-1400

Course URL: http://www.cs.rit.edu/~rjb/CG1_20101.htm

Description

Computer Graphics I is a study of the hardware and software principles of interactive raster graphics. Topics include an introduction to the basic concepts, 2D and 3D modeling and transformations, viewing transformations, projections, rendering techniques, graphical software packages and graphics systems. Students will use computer graphics packages and implement fundamental computer graphics algorithms.

Course Goals

Prerequisite

Third year standing or permission of instructor

Please see me as soon as possible if you haven't reached this level. If you aren't at least a third-year student, or you have not come through an equivalent preparatory programming sequence, there is a very good chance that you don't have sufficient programming experience to allow you to succeed in this course.

Texts

Required:
Donald Hearn and M. Pauline Baker, Computer Graphics with OpenGL (3rd Edition), Prentice-Hall, 2003, ISBN: 0130153907

Recommended:
OpenGL Architecture Review Board, OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 2.1, Sixth Edition, Addison-Wesely, 2008, ISBN: 0321481003

Richard S. Wright, Jr., Benjamin Lipchak, Nicholas Haemel, OpenGL SuperBible: Comprehensive Tutorial and Reference Fourth Edition, Addison-Wesley, 2007, ISBN: 0321498828

Requirements and Grading

  Undergraduate Graduate
Exams 45% 35%
Assignments 45% 40%
Homework 10% 10%
Grad Report   15%

Exams:
Two exams are scheduled for this course:

Both exams will be weighted equally in the calculation of your final grade.

Note to graduate students: A deeper understanding of the material is expected of graduate students. Hence, the graduate and undergraduate versions of the exams may not be the same.

Homework:
Homework will be announced in class and posted on the course website. Due dates are also listed. Generally, students will have 1 week to complete homework assignments.

Programming Assignments:
There will be four programming projects this quarter. Some of these assignments will be divided into smaller parts. Programming assignments will be posted on the course website. Generally, students will have 1-2 weeks to complete programming assignments.

Problem sets:
Problem sets and their solutions will be posted on the course website. Although they will not be collected or graded, I suggest you attempt to work the problems before looking at the answers, to help ensure that you understand the concepts. The material in the problem sets are good fodder for exam questions.

Grad Report (graduate students only):
Each graduate student is expected to research a topic relative to computer graphics and prepare a 10-15 page report. Please see:
http://www.cs.rit.edu/~rjb/RITcourses/20101/ComputerGraphics1/public/gradreport.pdf  for specific information

Submissions

Dropboxes will be available on the myCourses website for submission of homework, assignments, pipeline implementation, and the grad report.

Policy on Late Submissions

It is extremely important to continue to make progress as the course progresses. As such, late deliverables will be not be allowed. If you foresee any problems with meeting a deadline, please see the instructor well in advance of the deadline to work out alternate arrangements.

Tentative Schedule

Lecture Notes: Slides presented in class will be posted in the content area of myCourses.

All assignments, readings, and homework will be posted on the course website. Special events such as homework and exam dates will also be posted on the course website. Please stay informed by visiting the course website regularly throughout the quarter.

Week Day Topics Relevant Chapters Special Events
1 Mon. Sept. 6 Course introduction and logistics
Math review
1, 2, 3, 4  
Wed. Sept. 8 Introduction to Computer Graphics (video) 1, 2, 3, 4  
2 Mon. Sept. 13 Elements of CGI
Implementing Graphics Primitives: Lines (applet)
3 Problem Set 1 assigned (myCourses)
Assignment 1 - assigned
Wed. Sept. 15 Implementing Graphics Primitives: Circles (applet) 3  
3 Mon. Sept. 20 Clipping (Cohen-Sutherland applet, RIT clipping applet) 4, 6  
Wed. Sept. 22 Polygon Fill (applet) 4, 6 Assignment 1 - stage 1 due (Extended to Friday 9/24)
4 Mon. Sept. 27 Geometric Transformations
Applets:
2D applet, Transformation Game, RIT transformation applet
5, 6  
Wed. Sept. 29 Windows and viewports
Viewing in 3D
5, 6 Assignment 1 - stage 2 due
Problem Set 2 assigned (transformation game)
5 Mon. Oct. 4 Tessellation
Midterm review
3, 9 Assignment 2 assigned
Wed. Oct. 6     Grad Report: Topic due
Assignment 1 - stage 3 due
Class cancelled
6 Mon. Oct. 11   12, 10 MIDTERM EXAM
Wed. Oct. 13 Illumination
Color
Color perception
12, 10 Assignment 2 due
7 Mon. Oct. 18 Normals
Shading
Material Properties
10, 14, 13 Assignment 3 assigned
Wed. Oct. 20 Texture Mapping (applet)
Hierarchical Modeling
Animation
10, 14, 13  
8 Mon. Oct. 25 Procedural Shading    
Wed. Oct. 27 Procedural Shading cont'd    
9 Mon. Nov. 1 Modeling; Curves and Surfaces 14, 8, 9 Assignment 3 due
 
Wed. Nov. 3 Hidden Surface Removal 14, 8, 9 Assignment 4 assigned
10 Mon. Nov. 8 Global Illumination 10  
Wed. Nov. 10 Global Illumination cont'd
Final review
10 Grad report due
Assignment 4 due
11       FINAL EXAM
Friday November 19th
10:15a.m. - 12:15a.m.
Room 70-3435

Academic Honesty

It is a shame that this must be stated at all, but there are always a few students who do not abide by the rules of proper academic conduct. For the record:

Those who behave in a dishonest or unethical manner in computer science courses, or in their dealings with the Computer Science Department, are subject to disciplinary action. In particular, dishonest or unethical behavior in the execution of assigned work in a computer science course will be treated as follows:

  1. For a first offense, the student involved will receive a grade of zero on the assignment. [A stronger penalty may be exacted, if, in the judgment of the instructor, the offense involves a flagrant violation of basic ethical standards.]
  2. For a second offense, in the same or a different course, the student will receive a failing grade for that course.
  3. A third offense will be referred to judicial affairs.

Complete policy details regarding cheating and classroom conduct can be found at the following links

Useful Links (more will be added)

Python specific links

Links from previous offerings of this course (please take some time to go through theses links. Lots of good information, code samples, tutorials, and other resources are available.