CS291A: Real-Time High Quality Rendering

Spring 2021

Course Description
[Mulan by Disney]
[Siren by Unreal Engine]

One of the perennial goals of Computer Graphics is creating high quality images which are indistinguishable from photographs: a goal referred to as photorealism. Another important goal is interactivity for visualization, simulation, gaming and other real-time applications. These two goals have historically been at odds with each other. In this course, we will review the history and some of the recent ideas that seek to bridge the gap between realism and interactivity. We will focus on the use of complex lighting and shading within limited computation time. Specifically, topics will cover programmable shaders, real-time shadows, interactive global illumination, image-based rendering, precomputed rendering, adaptive sampling and reconstruction, and real-time ray tracing.

This course will be constantly evolving over iterations. Lecture topics and/or reading materials will be subject to change to keep up with the latest development of real-time rendering. Currently, this course is for graduate students. In subsequent years, this course might be moved into undergraduates' curriculum.

Prerequisite: CS180: Introduction to Computer Graphics, or equivalent (e.g. CS280), or more advanced alternative (e.g. CS285). (Note, this course can be arbitrarily difficult if you haven't taken a Computer Graphics course previously. Courses in Computer Vision and Human-Computer Interaction will not help!)


Lingqi Yan
Email: lingqi@cs.ucsb.edu
Office hour: Thursdays 9:00AM - 9:45AM PT, Join via Zoom

Teaching Assistants

No TA for this class


Mondays and Wednesdays
Asynchronous Access

Books Recommended

There are no required textbooks for this course. Related papers will be available to download from this course website before lectures.

Optional references:
Tomas Akenine-Möller et al., "Real-Time Rendering", 4th edition. (Recommended. Free electronic version of the 4th edition is available in UCSB library.)
John Kessenich et al., "OpenGL Programming Guide: The Official Guide to Learning OpenGL", 8th or later edition.
Eric Haines and Tomas Akenine-Möller et al., "Ray Tracing Gems". (Free electronic version is publicly available.)

For further reading, you may refer to all GPU Zen, GPU Pro, and older GPU Gems series for interesting real-time rendering topics.

Assignments and Grading

Your assignments consist of one paper presentation, and three regular projects. There will be no exams and no final projects.

The paper presentation is performed ONCE and solely by yourself. You will assign yourself (you'll need an UCSB account) to one research paper from a list of provided research papers throughout different topics, make some slides, and present to the entire class. Due to the pandemic, your presentation will be pre-recorded by yourself with a duration of about 20 minutes. The paper presentation takes up 20% of your final grade.

For each paper presentation, both the instructor and ALL the students (including the presenter) will judge the quality of it. Each of you will send out a Google Form giving your score and comments, e.g., pros and cons. This participation is REQUIRED. All your comments (regardless of the scores and quality of comments you give) to all the presentations will take up another 20% of your final grade.

The three projects are CHOSEN BY YOURSELF from four potential project topics (Percentage Closer Soft Shadows, Precomputed Radiance Transfer, Real-Time Ray Tracing and Screen-Space Ambient Occlusion). In case you are not familiar with OpenGL, we also provide an OPTIONAL warm-up project (Project 0) for you to get started. Each project takes up 20,% of your final grade. You will work on all the projects individually, and you are expected to work out the projects from scratch (i.e. no code frameworks will be provided).

All projects are due by 11:59PM Anywhere on Earth (AoE) on the dates specified. You should plan ahead. Each late day will cause a 10% off the final score of the corresponding project. You need to submit your work via Gauchospace. Detailed submission guidelines are in the project descriptions.

Course Syllabus

Here's a tentative schedule. This schedule is relatively fluid and may change as the quarter progresses.

Week Date Topics
1 Mar 29 Introduction and Overview
Mar 31 Recap: Blinn-Phong Reflectance Model, Graphics Pipeline, 
Shading Languages, Rendering Equation
[Project 0 out: A Real-time Object Viewer]
2 Apr 5 Shadow and Environment Mapping
Apr 7 Shadow and Environment Mapping (cont.)
[Project 1 out: Percentage Closer Soft Shadows]
3 Apr 12 Shadow and Environment Mapping (Student Presentation)
Cabral et al., Reflection Space Image Based Rendering, SIGGRAPH 1999
Dimitrov et al., Cascaded Shadow Maps, 2007
Annen et al., Real-Time, All-Frequency Shadows in Dynamic Scenes, SIGGRAPH 2008
Apr 14 Precomputed Radiance Transfer
4 Apr 19 Precomputed Radiance Transfer (cont.)
Apr 21 Precomputed Radiance Transfer (Student Presentation)
Sloan et al., Clustered Principal Components for Precomputed Radiance Transfer, SIGGRAPH 2003
Wang et al., All-Frequency Rendering of Dynamic, Spatially-Varying Reflectance, SIGGRAPH Asia 2009
NVIDIA, RTX Global Illumination, GTC 2020
[Project 2 out: Precomputed Radiance Transfer]
5 Apr 26 Sampling and Reconstruction
Apr 28 Real-Time Ray Tracing
6 May 3 Sampling and Reconstruction, Real-Time Ray Tracing (Student Presentation)
Li et al., SURE-based Optimization for Adaptive Sampling and Reconstruction, SIGGRAPH Asia 2012
NVIDIA, DLSS 2.0, GTC 2020
[Project 3 out: Real-Time Ray Tracing]
May 5 Interactive Global Illumination Techniques (Reflection, Ambient Occlusion and Global Illumination)
7 May 10 Interactive Global Illumination Techniques and Image-based Rendering
May 12 Interactive Global Illumination Techniques, Image-based Rendering and Light Fields (Student Presentation)
Ritschel et al., Approximating Dynamic Global Illumination in Image Space, I3D 2009
Anton Kaplanyan, Light Propagation Volumes, SIGGRAPH 2009 Course
Brian Karis, The Split Sum Method, Unreal Engine 4
[Project 4 out: Screen-Space Ambient Occlusion]
8 May 17 Machine Learning for Real-Time Rendering
May 19 Other Potential Topics (Student Presentation)
Ritschel et al., Imperfect Shadow Maps for Efficient Computation of Indirect Illumination, SIGGRAPH Asia 2008
Wood et al., Surface Light Fields for 3D Photography, SIGGRAPH 2020
9 May 24 Non-Photorealistic Rendering
Mar 26 Real-Time Appearance (Student Presentation)
d'Eon et al., Efficient Rendering of Human Skin, EGSR 2007
Rousiers et al., Real-Time Rough Refraction, I3D 2011
10 Mar 31 No Class (Memorial Day)
Jun 2 No Class

Programming and Collaboration Policy

Programming projects are to be implemented individually. You should not derive solutions from existing sources or previous instances of this course (including previous postings from the online course, at other universities etc). Discussion of programming projects is allowed (encouraged). Copying of solutions or code from other students, or from students who previously took this course in any university or online setting is not allowed. If you do obtain substantial help from the instructor, teaching assistant/tutor or another student, you must document this in your program. Furthermore, you should in general not copy code from other sources. If in doubt, please ask. Further specifics are given in the assignment specifications.

To repeat, you may not copy solutions or code from other students, or students who previously took this or a similar class at a university or online. You must clearly declare any code and ideas that came directly from others, as opposed to what you created yourself. If you fail to do so, we can only assume you are presenting your own work. Of course, presenting other people's work as your own is academic dishonesty. Note also that in group assignments (if any), you are collectively responsible for your project; both you and your partner can be held liable (just as you both receive credit for) the resulting assignment. Students who engage in dishonest activities, with an intent to alter their grade, will receive an F for the course and be reported to the University for further action. Note that you will also be held liable for publicly posting your code on Github or other public websites, if another student subsequently copies from it.


Students with documented disability are asked to contact the DSP office to arrange the necessary academic accommodations.