Radiosity - Jeremy Slavitz & Thomas Hebb
Terrain Editor - Walton Lee & Henry Zhou
Ray Traced Constructive Solid Geometry - Brett Fouss & Jason Fan
Cities - Peter Lee & Jade Chan
Psychedelic Bubble Simulator - Samantha Welch & Cecily Lo
Notorious RGB (Distributed WebGL Rendering) - Maxwell Bernstein & Thomas Colgrove
Deferred Shading - Megan Van Welle & Anzu Hakone
Procedural Cities - Reema Al-Marzoog & Eric Baily
Real-Time Hatching - Jeremy Marcus & Skyler Tom
Simulating Elasticity - Robert Crumbaugh & Arthur Berman
Solar System Exploration Game - Xu Liu & Tianyu Zhu
Constructive Solid Geometry and Marching Cubes - Alena & Timothy Ho
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
Lab0 -- Compiling OpenGL|
|02-02-2016||Linear Algebra Recap||A1 out|
|02-04-2016||Lab1 -- Loading a Shape File|
|A1 algo due|
|02-16-2016||Lab2 -- User Interactions in OpenGL||A2 out||A1 due||Remco at the EI conference|
|02-18-2015||Monday Schedule||Remco at the EI conference|
|02-25-2016||Lab3 -- Solar System||A2 algo due|
|A3 out||Remco at KAUST|
|03-03-2016||Lab4 -- Be a Movie Director||A2 due||Remco at KAUST|
|03-08-2016||Animation||A3 algo due|
|03-10-2016||Lab5 -- Roller Coaster|
|03-15-2016||Ray Casting||A4 out||A3 due|
|03-17-2015||Lab6 -- Painting an Object|
|03-29-2016||Illumination and Intersection Normals||A4 algo due|
|03-31-2016||Lab7 -- Silhouette|
|04-05-2016||Recursive Ray Tracer - Basics and Texture||A5 out||A4 due|
Recursive Ray Tracer - Advanced Concepts and Data Structure
Final Project Discussion
|04-12-2016||Shaders||A5 algo due|
|04-14-2016||Lab8 -- Bump Mapping on the GPU|
tutorial 1: simple objects
tutorial 2: adding colors
tutorial 3: simple animation
tutorial 4: adding interaction
tutorial 5: texture
tutorial 6: PLY and normal
|Final Project Out||A5 due|
|04-21-2016||Lab9 -- WebGL + Shower Door Effect|
|04-26-2016||Final Project Check-In|
|04-28-2016||Lab10 -- WebGL|
|05-06-2016||Final Project Presentation||Final Project Due||3:30-5:30pm (in Halligan 102)|
Note: If you are downloading the demos to a lab machine, you may need to unblock the .zip file before extracting the files. Otherwise, the executable file may not be included in the extraction.
|Assignment 1:||Shapes (Demo: PC | Mac | Linux)||Render 3D objects using OpenGL Handout | Worksheet PDF | Worksheet TeX|
|Assignment 2:||Camera (Demo: PC | Mac | Linux)||Create your own camera Handout | Worksheet PDF | Worksheet TeX|
|Assignment 3:||SceneView (Demo: PC | Mac | Linux)||Render a hierarchical scene Handout | Worksheet PDF | Worksheet TeX | Sample Makefile|
|Assignment 4:||Intersect (Demo: PC | Mac | Linux)||Implement a basic ray tracer Handout | Worksheet PDF | Worksheet TeX|
|Assignment 5:||Ray (Demo: PC | Mac | Linux), (Test Data)||Implement a recursive ray tracer Handout | Worksheet PDF | Worksheet TeX|
Find your partner for this week.
|Lab0||Handout | Files|
|Lab1||Handout | Files|
|Lab2||Handout | Files|
|Lab3||Handout | Files|
|Lab4||Handout | Files|
|Lab5||Handout | Files|
|Lab6||Handout | Files|
|Lab7||Handout | Files|
|Final Project Ideas||Ideas Sheet|
|Lab8||Handout | Files|
|Lab9||Handout | Files | Howto Setup a Local Web Server|
|Lab10||Handout | Files|
|R1||Fundamentals of Computer Graphics (Third Edition) by Shirley and Marschner|
|In Class Projects||25%|
Grading: Each assignment is worth 12% of your final grade. Out of the 12%, 2% is for your written algorithm, and 10% for the implementation.
Late Policy: All the assignments (including written algorithms) are due at 11:59pm on Monday (the night before the Tuesday lecture). 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.
In Class Projects
Grading: There are 10 in class projects, each is worth 2.5% of your final grade. Note that Project 0 (P0) is not for credit, but obviously getting OpenGL to compile is essetial to the rest of your course work.
Late Policy: All in-class projects must be completed by the start of the next in-class project (1 week). The project will be checked in person by the TA or the instructor during class. There is no late policy for in-class projects. You will not receive partial credit for turning in a late project.
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.