This course explores the fundamentals of computer graphics, including 3D rendering via ray casting, ray tracing and radiosity, viewing transformations, 3D shape representation, and an introduction to modeling and computer animation. Assignments and projects require a good working knowledge of linear algebra and the C and C++ programming languages.
Prerequisite: COMP 40 (Machine Structure and Assembly-Language Programming). Background in Linear Algebra a plus
|01-23-2020||Lab 0 -- Compiling OpenGL|
|01-28-2020||Linear Albegra Recap||A1 out|
|01-30-2020||Lab1 -- Loading a Shape File|
|02-06-2020||Lab2 -- User Interactions in FLTK|
|02-11-2020||Transform 2||A2 out||A1 due|
|02-18-2020||Lab3 -- Solar System||Present A3|
|02-25-2020||CLASS CANCELLED||A3 out||A2 due||Remco Away|
|02-27-2020||Lab4 -- Solar System|
|03-05-2020||Lab5 -- Roller Coaster|
|03-10-2020||Ray Casting||A4 out||A3 due|
|03-12-2020||Lab6 -- Painting an Object|
|03-24-2020||Illumination and Intersection Normals|
|03-26-2020||Lab7 -- Dragging|
|03-31-2020||Recursive Ray Tracer - Basics and Texture||A5 out||A4 due|
|04-02-2020||Final Project Discussion|
|04-07-2020||Recursive Ray Tracer - Advanced Concepts and Data Structures|
|04-14-2020||Lab 9 -- Bump Mapping on the GPU||Final Project Out||A5 due|
|04-16-2020||Shaders Part 2|
|04-21-2020||Final Project Check-In|
|04-23-2020||Lab10 -- WebGL + Shower Door Effect|
|05-04-2020||Final Project Presentation
12:00pm-2:00pm Location TBA
|Final Project Due|
|Assignment 1:||Shapes  (Demo: Windows | Mac | Ubuntu)||Render 3D Shapes using OpenGL Handout | Worksheet PDF | Worksheet TeX|
|Assignment 2:||Camera (Demo: Windows | Mac | Ubuntu)||Create your own camera Handout | Worksheet PDF | Worksheet TeX|
|Lab0||Handout | Files|
|Lab1||Handout | Files|
|Lab2||Handout | Files|
|Lab3||Handout | Files|
|R1||Fundamentals of Computer Graphics (Third Edition) by Shirley and Marschner|
|In Class Labs||27%|
Grading: Each assignment is worth 11% of your final grade. Out of the 11%, 2% is for your written algorithm, and 9% for the implementation.
Late Policy: All the assignments due at 11:59pm on Sunday (the night before the Monday lecture). The algorithm worksheets are due at noon on Fridays of the week when the assignment is handed out. Assignments that are turned in late will receive a 0. However, you are allowed one "extension" for the semester. When you use an extension, you will be granted an extra 3 days. The rationale for the late policy is that the assignments are built on top of each other (e.g. you cannot complete assignment 5 without completing assignment 4). So completing each assignment in time is essential to the success of the next assignment. If you have an extraordinary circumstance, you must contact the instructor or the TA as soon as possible and obtain written approval.
Grading: There are 9 in-class labs, each is worth 3% of your final grade. Note that Lab0 is not for credit, but obviously getting OpenGL to compile is essential for the rest of your course work.
Late Policy: All in-class labs must be completed by the start of the next in-class lab (1 week). The lab will be checked in person by the TA or the instructor during class. There is no late policy for in-class labs. You will not receive partial credit for turning in a late lab.
Grading: Your final project will be graded in-person during the final exam period.
Late Policy: There is no late policy for the final project. You will receive a 0 if your final project isn't working by the demo day.
Tufts is committed to providing support services and reasonable accommodations to all students with documented disabilities. To request an accommodation, you must register with the Student Accessibility Services at the beginning of the semester. To do so, arrange an appointment with Linda Sullivan, Program Director of Student Accessibility Services at (617) 627-5447.
Some images and slides are based on lectures by Professor Andy van Dam at Brown University and Professor Daniel Keefe at the University of Minnesota.