Example images generated by students who took this class in Fall 2017.
Instructor: | Cem Yuksel (Office hours: by appointment, MEB 3116) |
---|---|
TA: | Daqi Lin (Office hours: Monday, Friday: 2pm - 3:30pm, MEB 3115) |
Time: | Tuesday & Thursday @ 3:40pm - 5:00pm |
Location: | WEB 1248 |
Overview
This course covers fundamental concepts of rendering and ray tracing. Each student implements a ray tracer of his/her 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 students the fundamental concepts of image synthesis in computer graphics.
At the conclusion of this course students will be able to:
• Understand the stages of a general purpose rendering pipeline,
• Implement ray tracing for image synthesis and lighting simulation,
• Identify aliasing and sampling related problems in graphics, and
• Obtain the necessary background knowledge for following the state-of-the-art advancements in rendering related research in computer graphics.
Week | Date | Topic | Project Deadlines |
---|---|---|---|
1 | Aug 20 | Transformations and Camera Rays | |
Aug 22 | Sphere Intersection and Software Setup | ||
2 | Aug 27 | Lights | Project 1 deadline - Ray Casting |
Aug 29 | Shading and BRDF | ||
3 | Sep 3 | Ray Traced Shadows | Project 2 deadline - Shading |
Sep 5 | Q&A Session | ||
4 | Sep 10 | Reflections | Project 3 deadline - Shadows |
Sep 12 | Refractions | ||
5 | Sep 17 | Ray Plane and Box Intersections | Project 4 deadline - Reflections and Refractions |
Sep 19 | Ray Triangle Intersection | ||
6 | Sep 24 | Space Partitioning | Project 5 deadline - Triangular Meshes |
Sep 26 | Space Partitioning (cont.) | ||
7 | Oct 1 | Textures and Mapping | Project 6 deadline - Space Partitioning |
Oct 3 | Texture Sampling | ||
8 | Oct 8 | — Fall Break — | |
Oct 10 | — Fall Break — | ||
9 | Oct 15 | Antialiasing | Project 7 deadline - Textures |
Oct 17 | Reconstruction Filters | ||
10 | Oct 22 | Depth of Field | Project 8 deadline - Antialiasing |
Oct 24 | Motion Blur | ||
11 | Oct 29 | Glossy Surfaces | Project 9 deadline - Depth of Field |
Oct 31 | Area Lights and Soft Shadows | ||
12 | Nov 5 | Rendering Equation and Global Illum. | Project 10 deadline - Soft Shadows and Glossy Surfaces |
Nov 7 | Monte Carlo Sampling | ||
13 | Nov 12 | Irradiance Caching | Project 11 deadline - Monte Carlo GI |
Nov 14 | Path Tracing | ||
14 | Nov 19 | Photon Mapping | Project 12 deadline - Path Tracer |
Nov 21 | Photon Mapping (cont.) | ||
15 | Nov 26 | Final Gathering | |
Nov 28 | — Thanksgiving — | ||
16 | Dec 3 | Adv. Global Illumination | Project 13 deadline - Photon Mapping |
Dec 5 | Adv. Global Illumination (cont.) | ||
Dec 10 | Teapot Rendering Competition Time: 3:30-5:30pm Location: LCR (MEB 3147) | Final Project |
Projects
Students must prepare a project web page for each project, which should include at least one image rendered using his/her project code, clearly showing that the requirements of the project have been completed. This web page can have multiple images showing different aspects of the project. Each image must also have a render time next to it (as well as hardware information). The images on the project web pages must be in PNG format.
All project web pages of a student must be under the same web directory. The naming convention for the project web pages is prjN.html, where 1 ≤ N ≤ 14. Students should also prepare a 320x240 pixel thumbnail image for each project and put it in the same directory with the name convention prjN.jpg. For example, if the student's web directory is http://www.cs.utah.edu/~myname/courses/cs6620/, Project 1 submission should include:
http://www.cs.utah.edu/~myname/courses/cs6620/prj1.html and
http://www.cs.utah.edu/~myname/courses/cs6620/prj1.jpg
as well as all the files that are linked within prj1.html. Students should pick a web directory and email the link to the instructor before the Project 1 deadline.
Students must also submit their source codes for each project via canvas. The project source codes should NOT be included on the project web pages or any publicly accessible web service. Students are highly encouraged to use C++ for their projects.
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 20% penalty and an additional 20% penalty is applied at each following class start time. Therefore, a project that is submitted two weeks after its deadline can only receive up to 20% of its total points. If a project is submitted more than two weeks later than its deadline, it will receive no points. To accommodate special circumstances, first three late penalties (i.e. up to 60% late penalty) of each student will be omitted. No late submission is accepted for the final project without prior permission from the instructor.
All projects are individual projects. Group projects are not permitted. Therefore, each student must write his/her 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 with comments within the source code.
Grading
Projects 1-10 | 5 points |
---|---|
Projects 11-13 | 10 points |
Final Project | 20 points |
TOTAL | 100 points |
School of Computing Policies and Guidelines
The School of Computing Policies and Guidelines represent important information that students taking courses in, or seeking degrees from, the School of Computing, must be aware of. It is important that you read, understand, and adhere to this information.
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.
University of Utah Disability Accommodation Policy
The University of Utah seeks to provide equal access to its programs, services, and activities for people with disabilities. If you need accommodations in the class, reasonable prior notice should be given to the Center for Disability Services, 162 Olpin Union Building, 801-581-5020 (V/TDD), http://disability.utah.edu/. CDS will work with you and the instructor to make arrangements for accommodations.
University Safety Statement
The University of Utah values the safety of all campus community members. To report suspicious activity or to request a courtesy escort, call campus police at 801-585-COPS (801-585-2677). You will receive important emergency alerts and safety messages regarding campus safety via text message. For more information regarding safety and to view available training resources, including helpful videos, visit safeu.utah.edu.
2017 Teapot Rendering Competition Awards
Ian Mallett
Daqi Lin
Justin Alain Jensen
Nathan Vollmer Morrical
Qi Wu
Benjamin Richard Draut