CS 5610/6610 - Spring 2022
Interactive Computer Graphics

Instructor:Cem Yuksel
Time:Tuesday & Thursday @ 3:40pm - 5:00pm
Location:WEB 1230
TAs: Jerry Hsu
Yura Hwang


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 online discussions.

Course Objectives

The main objective of this course is to introduce students the fundamental concepts of interactive rendering in computer graphics. The lectures in this course teach the programming concepts for the GPU rendering pipeline and present a multitude of techniques for using this pipeline to interactive rendering and visualization. The course aims to help the students obtain the necessary knowledge and skills for developing interactive graphics applications for various tasks.

Given a 2D or 3D virtual scene representation, students will be able to develop interactive applications that can display the given scene with proper shading, textures, lighting, and shadows; write GPU shaders that can perform tessellation and geometry modifications; and implement algorithms for handling reflections and visibility computations.

Learning Outcomes

Upon conclusion of this course, students will be familiar with the GPU rendering pipeline and advanced rendering techniques used in interactive graphics applications. Students who successfully complete this course will be able to:
  • Describe the stages of the interactive graphics rendering pipeline,
  • Effectively use graphics APIs, such as OpenGL and GLSL,
  • Write complex GPU shaders,
  • Perform lighting and shading computations,
  • Compute interactive shadows,
  • Evaluate or approximate interactive reflections,
  • Program tessellation and geometry shaders,
  • Implement modern interactive rendering techniques.


This course will use the flipped classroom model. All lectures of this course will be presented as pre-recorded online videos. The classroom meetings will be reserved for discussions on the topics presented in the related lecture videos. Students are expected to watch the related lecture video before class time. See the following schedule for details.


This course will not follow a textbook. Students, who would like to improve their background knowledge on fundamentals of computer graphics, can refer to the textbook for CS 4600 (Introduction to Computer Graphics).

Schedule (subject to change)

WeekDateTopicProject Deadlines
1Jan 11Introduction
Jan 13Images and Transformations
2Jan 18Rendering Algorithms
Jan 20Windowing APIs
3Jan 25Introduction to Modern OpenGLProject 1 deadline - Hello World
Jan 27Introduction to GLSL & OpenGL Extensions
4Feb 1Triangular MeshesProject 2 deadline - Transformations
Feb 3Lights and Shading
5Feb 8TexturesProject 3 deadline - Shading
Feb 10Textures on the GPU
6Feb 15Render to TextureProject 4 deadline - Textures
Feb 17The Rendering Equation
7Feb 22Environment MappingProject 5 deadline - Render Buffers
Feb 24Reflections
8Mar 1Lights & ShadowsProject 6 deadline - Environment Mapping
Mar 3Shadow Mapping
9Mar 8— Spring Break —
Mar 10— Spring Break —
10Mar 15Geometry ShadersProject 7 deadline - Shadow Mapping
Mar 17Final Project Discussions
11Mar 22Tessellation Shaders [1]Final Project Proposal deadline
Mar 24Bump, Normal, Displacement, and Parallax Mapping
12Mar 29Compute Shaders and Mesh Shaders [2]Project 8 deadline - Tessellation
Mar 31Deferred, Variable-Rate, and Adaptive Shading
13Apr 5Global Illumination
Apr 7Ambient Occlusion and Soft Shadows
14Apr 12Refractions, Transparency, Blending, & Alpha TestingFinal Project Progress Report deadline
Apr 14Volume Rendering
15Apr 19GPU Ray Tracing
Apr 21— No Class —
16Apr 26Final Project Presentations (Day 1)Final Project deadline - Final Project
Apr 28— No Class —
Apr 29Final Project Presentations (Day 2)
Time: 3:30pm-5:30pm


Students must submit their source codes for each project through Canvas. All projects will be implemented using C++. Students are highly encouraged to use the OpenGL API for their projects, but other graphics APIs that can be used with C++ are also accepted.

All projects, except for the final project, are individual projects. Group projects are permitted only for the final project.

For individual projects, 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 tolerated. See the Academic Misconduct Policy of the School of Computing for details.

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 20 days after the project deadline, except for the final project.

Final Project: No late submissions or resubmissions are permitted for the the final project. Students are permitted to form groups for the final project only.

All project submissions are handled through canvas.


Online quizzes will be administered on canvas. Each quiz will be about the topic covered in the corresponding lecture or lectures. Top 20 quiz scores of each student will be used for grading.


Quizzes ×20 10 points
Project 1-55× 5 points
Projects 6-83× 10 points
Final Project Abstract 5 points
Final Project Progress Report5 points
Final Project25 points
TOTAL100 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 Policies

1. The Americans with Disabilities Act. The University of Utah seeks to provide equal access to its programs, services, and activities for people with disabilities. If you will need accommodations in this class, reasonable prior notice needs to be given to the Center for Disability Services, 162 Olpin Union Building, (801) 581-5020. CDS will work with you and the instructor to make arrangements for accommodations. All written information in this course can be made available in an alternative format with prior notification to the Center for Disability Services.

2. 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.

3. Addressing Sexual Misconduct. Title IX makes it clear that violence and harassment based on sex and gender (which Includes sexual orientation and gender identity/expression) is a civil rights offense subject to the same kinds of accountability and the same kinds of support applied to offenses against other protected categories such as race, national origin, color, religion, age, status as a person with a disability, veteranís status or genetic information. If you or someone you know has been harassed or assaulted, you are encouraged to report it to the Title IX Coordinator in the Office of Equal Opportunity and Affirmative Action, 135 Park Building, 801-581-8365, or the Office of the Dean of Students, 270 Union Building, 801-581-7066. For support and confidential consultation, contact the Center for Student Wellness, 426 SSB, 801-581-7776. To report to the police, contact the Department of Public Safety, 801-585-2677(COPS).

4. COVID-19 Fall 2021 Statement University leadership has urged all faculty, students, and staff to model the vaccination, testing, and masking behaviors we want to see in our campus community.

These include: Vaccination Masking Testing


  1. M. Nießner, B. Keinert, M. Fisher, M. Stamminger, C. Loop, and H. Schäfer. 2016. Real-Time Rendering Techniques with Hardware Tessellation. In Computer Graphics Forum, Vol. 35, No. 1, pp. 113-137.
  2. Shawn Hargreaves. 2020. Reinventing the Geometry Pipeline: Mesh Shaders in DirectX12. DirectX Dev Day.