Skip to content

karansher/computer-graphics-csc317

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

355 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Computer Graphics CSC317/CSC2504 Fall 2025

image courtesy Tim Jeruzalski

Sections

LEC 0101/2001 LEC 0201
Instructor Prof. Karan Singh Joonho Kim
Contact karan@dgp.toronto.edu joonho@dgp.toronto.edu
Lecture Tue 13:00–15:00 WI1017 Tue 15:00–17:00 BA1130
Tutorial Thu 13:00–14:00 MC252 Thu 15:00–16:00 MC254
Office Hours Tue 11:30–12:30 BA5258 Wed 12:00–13:00 BA2272

*You can attend any office hours that fits your schedule

TAs

Karran Pandey (Head TA)
Lulu Wei
Sophia Yang
Zhijie Wu
Vishnu Nittoor
Jialin Li
Bo-Wei Wen

csc317tas@cs.toronto.edu

Links

Use Assignment GitHub issue pages for questions/discussion

Programming Resources

www.cplusplus.com

OpenGL Tutorials at http://www.opengl-tutorial.org

The Matrix Cookbook

Eigen Matrix Library

CMake Guide

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: C/C++ Programming, Linear Algebra, Calculus, Numerical Methods.

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

(Strongly) Recommended preparation: Multivariable Calculus

Recommended Textbook

The Book.

This class involves required reading from:

Fundamentals of Computer Graphics, Fourth Edition, Steve Marschner, Peter Shirley, et al. 2015.

Digital e-book are available at CRC Press.

Lecture Schedule

Below is the schedule for the course with each row of the table showing the week beginning with Sunday.

  • Tuesdays: Lecture days
  • Wednesdays: Quiz due dates
  • Thursdays: Tutorial/Office Hours
  • Fridays: Assignment due dates (11:59pm) on Markus.
Week Sunday Mon Tue (Lectures) Wed (Quiz Release+Due) Thu (Tutorial+office Hours) Fri (Assignment Due)
1 Aug 31 Labour Day Introduction
Lec 1
Lec 1 JK
Tut 1
2 Sep 7 Lec 2
Lec 2 JK
q1 released Tut 2 a1 + oh1
3 Sep 14 Lec 3
Lec 3 JK
Tut 3 a2 + oh2
4 Sep 21 Lec 4
Lec 4 JK
q2 released + q1 due Tut 4 a3 + oh3
5 Sep 28 Lec 5 Tut 5
6 Oct 5 refresher+Test 1 (Lec1-4) a4 + oh4
7 Oct 12 Thanksgiving Lec 6
Lec 6 JK
q3 released + q2 due Tut 6 q3 released + q2 due
8 Oct 19 Lec 7
Lec 7 JK
a5 + oh5
9 Oct 26 Reading Week Reading Week Reading Week Reading Week Reading Week
10 Nov 2 Lec7 Tut 7 a6 + oh6
11 Nov 9 Lec 8 (Drop Day) q4 released + q3 due Tut 8 a7 + oh7
12 Nov 16 Guest lecture + Review
13 Nov 23 Test 2 (Lec5-8) a8 + oh8 + q4 due
14 Nov 30 Advance Topics+wrap a8 + oh8 showcase

You can find a series of short videos cut up by lectures and topics voicing over the lecture slides here.

Grading

% Item
64 Assignments (8% each) + 5% extra credit creative showcase
12 4 Quizzes (Online)
12 Test 1 (ch 1-4)
12 Test 2 (ch 5-8)

Assignments

Note: All assignments are available immediately. BUT we are only covering one assignment at a time. While you are welcome to look ahead, future assignments have not been debugged and we will not answer questions about them at tutorial or office hours until we cover them in lecture

Assignment
Assignment 1: Raster Images
Assignment 2: Ray Casting
Assignment 3: Ray Tracing
Assignment 4: Bounding Volume Hierarchy
Assignment 5: Meshes
Assignment 6: Shader Pipeline
Assignment 7: Kinematics
Assignment 8: Mass-Sptring System
Showcase

Assignments will be due on their respective Friday due dates at 11:59pm.

Lateness Policy

Every student is given ten (10) grace tokens which are automatically applied for assignments on Markus starting at midnight on the due date. Each grace token will provide an additional 12 hours period to submit your assignment without penalty. Grace tokens do not replenish, so use them wisely. Weekends count as late days. You cannot choose which assignments to apply your grace tokens. Once you run out of grace tokens, any late assignments will be counted as 0 marks.

For example, say you have 10 grace tokens. If a1 is due on Friday 11:59pm and you submit your assignment on Sunday 4pm, you will have used 4 grace tokens: Friday 11:59pm -> Saturday 11:59am (1gt) -> Saturday 11:59pm (1gt) -> Sunday 11:59am (1gt) -> Sunday 11:59pm (1gt). You will now have 6 grace tokens left for other assignments.

Quizzes

There will be 4 online quizzes available through Quercus. Each quiz will cover the content of two assignments each, from assignment 1 to assignment 8. Each quiz will go live after the respective topics are covered in class and must be completed on Quercus by the end of the term (Nov 26).

You will only have 1 attempt to complete the quiz.

Academic Honesty (required reading)

image courtesy Gavin Barill

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 won't 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 won't have to cheat!

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

  • Any attempt to pass off work on a test, quiz or assignment that didn't come straight out of your own head.
  • Any collaboration on written or programming assignments (its ok to share ideas on programming assignments but the code MUST be your own) in which the collaborating parties don't clearly and prominently explain exactly who did what, at turn-in time.
  • Any activity that has the effect of significantly impairing the ability of another student to learn. Examples here might include destroying the work of others, interfering with their access to resources (e.g., digital cameras), or deliberately providing them with misleading information.

Email & Bulletin Board Traffic

  • Please use the TA Email List for all communications except for things that require a Professors dedicated attention.
  • Use github issue pages on assignment pages for questions
  • Do NOT broadcast pieces of your code or answers to written assignments to the github issues. Specific or general implementation questions whose answer would benefit all students in the class are appropriate. However: the bulletin board is NO replacement for the tutorial hour. That should be the main forum for asking/answering questions of this sort.
  • Questions of the form "I cannot find the problem with my code; here it is, can you help me" are unlikely to be replied, so don't count on it. If you have a question with code, take it to the TA office hours or to the tutorials.

About

Course Page for Computer Graphics course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CSS 100.0%