CSC 418/2504, Fall, 2007: Computer Graphics


Karan Singh



(416) 978-7201

Office Hours

BA 5258, W 5-6pm
(other times by appointment only)


W 7-9pm, SF 1101



W 6pm








This course introduces the basic concepts and algorithms of computer graphics. It covers the basic methods needed to model and render 3D objects, including much of the following: graphics displays, basic optics, line drawing, affine and perspective transformations, windows and viewports, clipping, visibility, illumination and reflectance models, radiometry, energy transfer models, parametric representations, curves and surfaces, texture mapping, graphics hardware, ray tracing, graphics toolkits, animation systems.

The student is expected to read background material on the hardware and local software, and should be comfortable with elementary linear algebra, geometry, and vector calculus. It is also assumed that the student is comfortable programming in basic C++.


line drawing, affine and perspective transformations, polygon meshes, keyframe animation, animation systems, camera models, clipping, visibility, illumination models, texture mapping, graphics hardware, ray tracing, antialiasing, parametric representations, curves and surfaces, subdivision methods.

Course Texts

Rcommended P. Shirley, Fundamentals of Computer Graphics, A. K. Peters, 2002.

                        Mason Woo et al, OpenGL 1.2 Programming Guide, Third Edition, Addison-Wesley, 1999 (recommended for learning OpenGL).


Reference       F.S. Hill, Jr. Computer Graphics Using OpenGL, Second Edition, Prentice Hall, 2007.

J. D. Foley, A. van Dam, S. K. Feiner, and J. F. Hughes. Computer Graphics: Principles and Practice, 2nd Edition, in C , Addison Wesley, 1990.

D. Hearn and M. P. Baker. Computer Graphics, Third Edition, Addison Wesley, 2003.

A. Watt and M. Watt, Advanced Animation and Rendering Techniques, Addison-Wesley, 1992.

Grading Scheme





Assignment #1

W Sep 19 

W Oct 3, in class


Assignment #2

W Oct 17

W Nov 7, in class


Assignment #3

W Sep 12

W Nov 28, in class


Midterm Test

W Oct 24, in class




Dec 10-21



Assignments involve both analytic problems as well as implementation of algorithms. Assignment 3 is a small project to produce an animation, raytraced imagery or an interactive game. Look here for inspiration. Late assignments will be penalized 10% per day.

You are expected to be a competent programmer in C or C++ in this course. You will need knowledge of 3D geometry, linear algebra, calculus and data structures.

Plagiarism is a serious academic offense; the work submitted should be your own. If you have exchanged ideas with a fellow student and thus have answers which might be falsely construed as being plagiarised, you should state this.

Computer Facilities, St. George campus

The programming assignments will make use of the CDF Unix facilities. Those unfamiliar with CDF will find A student's Guide to CDF to be useful. This guide is available in the bookstore. The CDF workstations are located in the Engineering Annex in EA107, EA201, and EA203. There's also an online FAQ, with a variety of useful information about working on the CDF Unix machines. You may use Visual Studio to program your assignments on Windows as well (you are on your own on this platform... there is no CDF support for it and you must submit self contained executables in addition to the workspace and source files).

The course newsgroup ut.cdf.csc418h can be used as a discussion forum, and the professor and TAs will check it periodically, and may answer your questions posted there. Questions are best asked in person to the TAs or the professor, at appointed times. Common questions and problems with assignments will be handled using the newsgroup and online FAQs.