Instructor: | Cem Yuksel (Office hours: by appointment, MEB 3116) |
---|---|
Time: | Tuesday & Thursday @ 2:00pm - 3:20pm |
Location: | WEB L110 |
Contact: | cs6610@googlegroups.com (includes instructor & TAs) |
TA: | Daqi Lin |
Office Hours: |
Mondays 1pm to 5pm (MEB 3423) Fridays 1pm to 5pm (MEB 3419) |
Overview
This course covers the fundamental concepts of interactive (and real-time) rendering. The topics covered in this course are directly related to any application domain that displays 3D information, ranging from video games to interactive visualization. This is a project-heavy course with multiple programming assignments.
Interactive rendering often relies on the GPU hardware to perform most of the rendering-related tasks. Therefore, this course will cover topics related to GPU programming for interactive rendering. The examples that will be covered in this course will use the OpenGL API and the OpenGL Shading Language (GLSL), but students are permitted to use other fundamental graphics API like Direct3D or Vulkan for their projects.
The Canvas page for the course will be primarily used for project submissions, announcements, and discussion board.
Course Objectives
The main objective of this course is to introduce students the fundamental concepts of interactive rendering in computer graphics.
At the conclusion of this course students will be able to:
• Understand the stages of the interactive graphics rendering pipeline,
• Effectively use OpenGL and GLSL,
• Write complex GPU shaders, and
• Implement modern interactive rendering methods.
Week | Date | Topic | Project Deadlines |
---|---|---|---|
1 | Jan 9 | — No Class — | |
Jan 11 | Rendering Algorithms | ||
2 | Jan 16 | The Graphics Pipeline | |
Jan 18 | Introduction to GLUT | ||
3 | Jan 23 | Introduction to Modern OpenGL | Project 1 deadline - Hello World |
Jan 25 | Introduction to GLSL | ||
4 | Jan 30 | Lights and Shading | Project 2 deadline - Transformations |
Feb 1 | The Rendering Equation | ||
5 | Feb 6 | Textures | Project 3 deadline - Shading |
Feb 8 | Textures (cont.) | ||
6 | Feb 13 | Render to Texture | Project 4 deadline - Textures |
Feb 15 | Selection | ||
7 | Feb 20 | Environment Mapping | Project 5 deadline - Render Buffers |
Feb 22 | Reflections | ||
8 | Feb 27 | Shadows | Project 6 deadline - Environment Mapping |
Mar 1 | Shadow Mapping | ||
9 | Mar 6 | Geometry Shaders | Project 7 deadline - Shadow Mapping |
Mar 8 | Q&A Session | ||
10 | Mar 13 | Tessellation Shaders [1] | Final Project Proposal deadline |
Mar 15 | Bump, Normal, Displacement, and Parallax Mapping | ||
11 | Mar 20 | — Spring Break — | |
Mar 22 | — Spring Break — | ||
12 | Mar 27 | Global Illumination and Ambient Occlusion | |
Mar 29 | Light Mapping and Soft Shadows | ||
13 | Apr 3 | Transparency and Alpha Blending | Final Project Progress Report deadline |
Apr 5 | Volume Rendering | ||
14 | Apr 10 | Deferred Shading | |
Apr 12 | — No Class — | ||
15 | Apr 17 | Compute Shaders | |
Apr 19 | — No Class — | ||
16 | Apr 24 | Final Project Presentations | Final Project deadline - Final Project |
Apr 26 | — | — |
Projects
Students must submit their source codes for each project through Canvas. 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.
Project submissions are handled through canvas.
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 in comments within the source code and in the project report.
Failure to follow these rules may lead to a failing grade. Academic misconduct will not be tollerated. See the Academic Misconduct Policy of the School of Computing for details.
Grading
Project 1 | 5 points |
---|---|
Projects 2-7 | 10 points |
Final Project Abstract | 5 points |
Final Project Progress Report | 10 points |
Final Project | 20 points |
TOTAL | 100 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.
References