Computer Graphics CSC418 Fall 2017

Sections

LEC0101 Wednesdays 12:00–14:00 in LM 158
Prof. Karan Singh
karan@dgp.toronto.edu
+1 416–978–7201
Office hours Wednesdays 14:00–16:00 in BA 5258

LEC0201 Tuesdays 15:00–17:00 in GB 220
Prof. Alec Jacobson
jacobson@cs.toronto.edu
+1 416–946–8630
Office hours Tuesdays 17:00–19:00 in BA 5266

Tutorial for both sections will be held together on Mondays 12:00–13:00 in GB 220.

News

Date Posted Anouncement
11/9/2017 Welcome to CSC418
25/9/2017 A1 posted
3/10/2017 Submission instructions for assigments
3/10/2017 Midterm during tutorial hour on Oct 30
13/10/2017 A2 part A posted, part B to come on Oct 15.
15/10/2017 A2 part B posted.
15/11/2017 A3 posted

Course Overview

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.

Prerequisites: CSC336H1/CSC350H1/CSC351H1/CSC363H1/364H1/CSC365H1/CSC373H1/ CSC375H1/378HI, MAT137Y1, CSC209H1/proficiency in C or C++ ;
CGPA 3.0/enrolment in a CSC subject POSt.

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++.

Recommended preparation: MAT237Y1, MAT244H1.

Lecture Schedule

Links to lecture slides are required readings. These links are available before each lecture (but may be minimally altered for the lecture).

Online notes present the slides in greater detail and are strongly suggested reading. Sections under the Textbook column refer to strongly suggested readings from Shirley’s textbook. External links point to online resources (e.g., Wikipedia and MathWorld) that you may find helpful. They are not required readings.

Topics Slides Shirley Chapters
Part I: Basic Graphics Primitives
Tutorial 1 Hello, I’m your TA. There’s no tutorial this week.
Lecture 1 Introduction & raster operations Line drawing, 2D polygons, parametric 2D curves (circle, ellipse)
Introduction.pdf
Curves.pdf
Wikipedia List of curves
lecture1.pdf, lecture1_6up.pdf 3.1–3.5; 2.5–2.6
Tutorial 2 C++, OpenGL and Hierarchical Models
Lecture 2 Interpolation & 2D Transformations Rigid, conformal, affine transformations. Homogeneous coordinates. Coordinate-free geometry.
Transforms.pdf
Coordfreegeom.pdf

lecture2+3.pdf, lecture2+3_6up.pdf

app illustrating xforms

6.1; 2.4; 6.3
Tutorial 3 C++, OpenGL and Hierarchical Models
Lecture 3 3D Surfaces Planes, tangents, normals, bilinear patches, quadrics/superquadrics. 3D transformations.
3dobjects.pdf
2.9–2.11; 13.1; 6.2
Part II: Viewing in 3D
Tutorial 4 3D meshes, cylinders, surfaces of revolution 
Lecture 4 Camera models and 3D transformations Change of basis, Scene Hierarchies, Viewer coordinates. Perspective and orthographic projections. Pseudo-depth. lecture4.pdf, lecture4_6up.pdf 7.2-7.3; 7.3-7-5   
Tutorial 5 Life of a polygon: object, world, camera coordinates, homogeneous projection, 3D view volume   
Lecture 5 Visibility BSP, Spatial partitions, Z-buffer lecture5.pdf, lecture5_6up.pdf 8.1-8.2
 
Part III: Appearance Modeling Animation and Rendering
Tutorial 6 Visibility, back-faces, spatial partitions.    
Lecture 6

Lighting and Reflection Diffuse, ambient, specular, and Phong models. Interpolative shading, texture mapping.

lecture6.pdf, lecture6_6up.pdf

texture mapping

8.1-8.2
Tutorial 7      
Lecture 7 review of concepts for MIDTERM + Catmull-Romm splines  + Key-framing, parametric curves, motion capture. Data-driven and Physics-based animation   lecture8.pdf, lecture8_6up.pdf  
Tutorial 8  MIDTERM    
Lecture 8 Basic ray tracing algorithm. Computing ray-plane intersections lecture7.pdf, lecture7_6up.pdf 10.1-10.7  
Tutorial 9 Ray tracing review    
Lecture 9 Refraction, Distributed/stochastic ray-tracing, Backwards ray-tracing (caustics), radiosity.  lecture7.pdf, lecture7_6up.pdf 24.1-24.2 
Tutorial 10 Refraction and transmission. Ray trace pseudo-code.      10.8,10.10
Lecture 10 Polynomial interpolation, smooth curve design, Bezier, b-splines, hermite splines. lecture9.pdf, lecture9_6up.pdf 15.1-15.3, 15.6.1, 15.4-15.5  
Tutorial 11 Curves review.    
Lecture 11

part II of lecture 10.
1D Polynomial interpolation applet; Catmull-Rom applet;
Bézier curve applet (UNC)
;
Bézier curve applet (Brown)
;
Bézier patch applet (OGI)
;
Bézier patch applet (Cornell)
;

lecture9.pdf, lecture9_6up.pdf  
Tutorial 12 Final exam review    
Lecture 12 Wooden Monkey presentation, Summary   16.1-16.2, 16.4-16.5;
 

Assignments

Academic Honesty (Please Read!!!)

Links to assignments will be available on the hand-out dates

 

Date handed out Due date Assignment Helper code Submission
Sep 25 Oct 11 A1, A1 webapp js code instructions
Oct 13 Nov 1

A2 part A

A2 partB

zip file instructions
Nov 15 (wooden monkey Dec 4) Dec 8 A3 zip file instructions

Recommended Textbook and References

Currently, there is no textbook that reflects all the material covered in this class. Only the Slides in the Lecture Schedule are required reading.

In-class lectures will be supplemented by online notes (lecture slides and course notes) as well as portions of the following recommended textbook:

Textbook

Textbook sections and online notes listed next to each lecture are strongly suggested reading.

We will not be using the following books directly, but they offer different perspectives on the topics that will be covered in class.

Grading

15% In-tutorial test: Oct 30
35% Final exam
50% Assignments

There will be three assignments in total, composing 10%, 15% and 25% of the total grade, respectively. Assignments will be roughly tri-weekly. The assignments will have a written portion and a programming portion.

Late Policy

Assignments are due by 11:59pm on the due date. Assignments (including the written part) should be submitted to the TA in electronic form. Exact submission instructions will be provided with the first assignment. The written portions if hand-written should be legibly scanned and submitted electronically as well.

For each day late, including weekends, 15% of the total possible points will be deducted (a day ends at the due time).

No work will be accepted if it is more than five days late.

Academic Honesty

Academic honesty is a very serious matter and can result in very serious consequences. Note that academic offences may be discovered and handled retroactively, even after the semester in which the course was taken for credit. This is a challenging class aimed at teaching you the fundamentals of computer graphics. You wont learn much if you cheat but you might get a good grade if you get away with it. If all you want is a good grade take an easier class where you wont have to cheat!

For purposes of this class, academic dishonesty is defined as:

Email & Bulletin Board Traffic