CS 5610/6610 - Spring 2017
Interactive Computer Graphics

Instructor:Cem Yuksel (Office hours: by appointment, MEB 3116)
TAs: Hannah Swan
Kui Wu
Ian Mallett
Time:Tuesday & Thursday @ 2:00pm - 3:20pm
Location:WEB L110


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.

Schedule (subject to change)

WeekDateTopicProject Deadlines
1Jan 10Images and Transformations
Jan 12Rendering Algorithms
2Jan 17The Graphics Pipeline
Jan 19Introduction to GLUT
3Jan 24Introduction to Modern OpenGLProject 1 deadline - Hello World
Jan 26Introduction to GLSL
4Jan 31Lights and ShadingProject 2 deadline - Transformations
Feb 2The Rendering Equation
5Feb 7TexturesProject 3 deadline - Shading
Feb 9Textures (cont.)
6Feb 14Render to TextureProject 4 deadline - Textures
Feb 16Selection
7Feb 21Environment MappingProject 5 deadline - Render Buffers
Feb 23Reflections
8Feb 28— No Class —
Mar 2Shadow MappingProject 6 deadline - Environment Mapping
9Mar 7Geometry Shaders
Mar 9Q&A SessionProject 7 deadline - Shadow Mapping
10Mar 14— Spring Break —
Mar 16— Spring Break —
11Mar 21Tessellation Shaders [1]
Mar 23Bump, Normal, Displacement, and Parallax Mapping
12Mar 28Global Illumination and Ambient OcclusionFinal Project Proposal deadline
Mar 30Light Mapping and Soft Shadows
13Apr 4Transparency and Alpha Blending
Apr 6Volume RenderingFinal Project Progress Report deadline
14Apr 11Deferred Shading
Apr 13Compute Shaders
15Apr 18— No Class —
Apr 20Final Project PresentationsFinal Project deadline - Final Project
16Apr 25Final Project Presentations
Apr 27


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

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


Project 15 points
Projects 2-710 points
Progress Report10 points
Final Project25 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.


  1. Nießner, M., Keinert, B., Fisher, M., Stamminger, M., Loop, C. and Schäfer, H. 2016. Real-Time Rendering Techniques with Hardware Tessellation. In Computer Graphics Forum, Vol. 35, No. 1, pp. 113-137.