Example images generated by students who took this class in Fall 2017.
Instructor: | Cem Yuksel (Office hours: by appointment, MEB 3116) |
---|---|
TA: | Jacob Haydel (Office hours: TBA) |
Time: | Monday & Wednesday @ 3:00pm - 4:20pm |
Location: | WEB 1230 |
Overview
This course covers fundamental concepts of rendering and ray tracing. Each student implements a ray tracer of their own. All the related theory and implementation details are discussed in the lectures. Therefore, the students do not need to have prior knowledge about computer graphics and prerequisites do not apply (this course can be taken without taking 5610 or 6610).
We begin with the basics of rendering and we build an extremely simple ray tracer. With each project we add a new feature to our ray tracers. To make sure that each project can be completed in a short amount of time, additional source code is provided when needed. We pay attention to implementation details during the lectures, so that the project codes not only work, but also have the right structure to easily add the new features of the upcoming projects. At the end of the semester, we get to have highly advanced ray tracers that are capable of generating realistic images using global illumination techniques. The course ends with the Teapot Rendering Competition.
Students can use the Canvas Discussion Board.
Course Objectives
The main objective of this course is to introduce the fundamental concepts of high-quality image synthesis in computer graphics, centered around ray tracing. The lectures in this course discuss the mathematical and algorithmic concepts and data structures involving ray tracing and Monte Carlo sampling. The course aims to guide students through a complete software implementation of a renderer based on ray tracing from scratch for scenes with spheres, planes, and triangle meshes with features involving reflections, refractions, shadows, acceleration structures, software texture filtering, anti-aliasing, depth of field, soft shadows, glossy reflections, Monte Carlo sampling, path tracing, and photon mapping.
Learning Outcomes
At the conclusion of this course, students will be able to:
Week | Date | Topic | Project Deadlines |
---|---|---|---|
1 | Aug 18 | Transformations and Camera Rays | |
Aug 20 | Sphere Intersection and Software Setup | ||
2 | Aug 25 | Lights | Project 1 deadline - Ray Casting |
Aug 27 | Shading and BRDF | ||
3 | Sep 1 | Ray Traced Shadows | Project 2 deadline - Shading |
Sep 3 | Q&A Session | ||
4 | Sep 8 | Reflections | Project 3 deadline - Shadows |
Sep 10 | Refractions | ||
5 | Sep 15 | Ray Plane and Box Intersections | Project 4 deadline - Reflections and Refractions |
Sep 17 | Ray Triangle Intersection | ||
6 | Sep 22 | Space Partitioning | Project 5 deadline - Triangular Meshes |
Sep 24 | Space Partitioning (cont.) | ||
7 | Sep 29 | Textures and Mapping | Project 6 deadline - Space Partitioning |
Oct 1 | Texture Sampling | ||
8 | Oct 6 | — Fall Break — | |
Oct 8 | — Fall Break — | ||
9 | Oct 13 | Antialiasing | Project 7 deadline - Textures |
Oct 15 | Reconstruction Filters | ||
10 | Oct 20 | Depth of Field | Project 8 deadline - Antialiasing |
Oct 22 | Motion Blur | ||
11 | Oct 27 | Glossy Surfaces | Project 9 deadline - Depth of Field |
Oct 29 | Area Lights and Soft Shadows | ||
12 | Nov 3 | Rendering Equation and Global Illum. | Project 10 deadline - Soft Shadows and Glossy Surfaces |
Nov 5 | Monte Carlo Sampling | ||
13 | Nov 10 | Irradiance Caching | Project 11 deadline - Monte Carlo GI |
Nov 12 | Path Tracing | ||
14 | Nov 17 | Photon Mapping | Project 12 deadline - Path Tracer |
Nov 19 | Photon Mapping (cont.) | ||
15 | Nov 24 | Final Gathering | |
Nov 26 | — Thanksgiving — | ||
16 | Dec 1 | Adv. Global Illumination | Project 13 deadline - Photon Mapping |
Dec 3 | Adv. Global Illumination (cont.) | ||
Dec 12 | Teapot Rendering Competition Time: 3:30-5:30pm Location: LCR (MEB 3147) | Final Project |
Projects
All projects are individual projects. Group projects are not permitted. Therefore, each student must write their own code. Collaboration between students is encouraged, but code sharing is not permitted. External libraries and source code can be used only for additional functionalities that are not core parts of the projects, and they should be clearly indicated in comments within the source code.
Failure to follow these rules may lead to a failing grade. Academic misconduct will not be tolerated. See the Academic Misconduct Policy of the School of Computing for details (applies to both graduate and undergraduate students).
All project submissions are handled through Canvas and the submission portal. Attempted project submissions through other means (including but not limited to emails and piazza posts) are not accepted.
Deadlines and Late Submissions: The deadline for each project is at noon (12:01pm) on the date indicated on the schedule (see above). Late submissions suffer a 5% penalty and an additional 5% penalty is applied every day at noon (12:01 PM). To accommodate for special circumstances, the first 10 late penalties of each student will be omitted.
Resubmissions: Students can submit the same project multiple times (i.e. resubmissions). The first submission must be before the project deadline and must present a clear attempt to complete the project; otherwise, late penalties apply (please see above). Subsequent resubmissions can be used for fixing bugs or incorrectly implemented parts of the projects. No late penalty is applied to resubmissions. Only the first submission date/time is used for evaluating late penalties, provided that it shows a clear attempt. Project submissions (and resubmissions) close 10 days after the project deadline, except for the final project. Resubmissions are not accepted after they close on Canvas. Students seeking for exceptions to this rule must present evidence of excused absence for at least 10 days that overlap with the entire resubmission period.
Final Project Deadline: No late submissions or resubmissions are permitted for the the final project.
Grading
Projects 1-10 | 5 points |
---|---|
Projects 11-13 | 10 points |
Final Project | 20 points |
TOTAL | 100 points |
Safe Classroom Environment
In this class, derogatory comments based on race, ethnicity, class, gender identity, sexual orientation, religion, (dis)ability status, age, citizenship, or nationality will not be tolerated, nor is it permissible to state one's opinion in a manner that silences the voices of others. Further, egregious disrespect, including, but not limited to, racism, sexism, ageism, homophobia, transphobia, classism, etc. will not be tolerated.
2017 Teapot Rendering Competition Awards
Agatha Mallett
Daqi Lin
Justin Alain Jensen
Nathan Vollmer Morrical
Qi Wu
Benjamin Richard Draut