CS 6620 - Fall 2017
Ray Tracing for Graphics

Example images generated by students who took this class in Fall 2015.

Instructor:Cem Yuksel (Office hours: by appointment, MEB 3116)
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.

Course Objectives

The main objective of this course is to introduce students the fundamental concepts of image syntesis 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 syntesis and lighting simulation,
  • Indentify 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 graphcis.

Schedule (subject to change)

WeekDateTopicProject Deadlines
1Aug 22Images and Transformations
Aug 24Camera Rays and Sphere Intersection
2Aug 29LightsProject 1 deadline - Ray Casting
Aug 31Shading and BRDF
3Sep 5Visibility and ShadowsProject 2 deadline - Shading
Sep 7Ray Traced Shadows
4Sep 12ReflectionsProject 3 deadline - Shadows
Sep 14Refractions
5Sep 19Ray Plane and Box IntersectionsProject 4 deadline - Reflections, and Refractions
Sep 21Ray Triangle Intersection
6Sep 26Space PartitioningProject 5 deadline - Triangular Meshes
Sep 28Space Partitioning (cont.)
7Oct 3Textures and MappingProject 6 deadline - Space Partitioning
Oct 5Texture Sampling
8Oct 10— Fall Break —
Oct 12— Fall Break —
9Oct 17AntialiasingProject 7 deadline - Textures
Oct 19Reconstruction Filters
10Oct 24Depth of FieldProject 8 deadline - Antialiasing
Oct 26Motion Blur
11Oct 31Glossy SurfacesProject 9 deadline - Depth of Field
Nov 2Area Lights and Soft Shadows
12Nov 7Rendering Equation and Global Illum.Project 10 deadline - Soft Shadows and Glossy Surfaces
Nov 9Ambient Occ. and Monte Carlo Sampling
13Nov 14Irradiance CachingProject 11 deadline - Monte Carlo GI
Nov 16Path Tracing
14Nov 21Photon MappingProject 12 deadline - Path Tracer
Nov 23— Thanksgiving —
15Nov 28Photon Mapping (cont.)
Nov 30Final Gathering
16Dec 5Adv. Global IlluminationProject 13 deadline - Photon Mapping
Dec 7Adv. Global Illumination (cont.)
Dec 15Teapot Rendering Competition
Time: 3:30-5:30pm
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. Students can convert the output images of their ray tracers using any image conversion software.

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 200x150 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 directory before the Project 1 deadline.

Students must also submit their source codes for each project, which should NOT be included on the project web pages. 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). Each student is permitted 3 late submissions without penalty, provided that the project is submitted before the next class time. Additional late submissions suffer a 20% penalty applied at each following class time. 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-105 points
Projects 11-1310 points
Final Project20 points
TOTAL100 points

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.

2015 Teapot Rendering Competition Awards

Winner Audience Choice Award

Laura Marie Lediaev

Juror Choice Award

William Mason Usher

Juror Choice Award

Ian Mallett

Juror Choice Award

Laura Marie Lediaev

Best in Class Award Student Choice Award

Venkata Kushal Ponnam