CS292F: Real-Time High Quality Rendering

Spring 2024

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/CS280: Introduction to Computer Graphics, or equivalent, or more focused alternative (e.g. CS190I/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! Specifically, we will use OpenGL to write program programs/shaders, and you should know how to use it already from a introductory graphics course. Otherwise, you need to quickly learn how to use it by yourself.)


Lingqi Yan
Email: lingqi@cs.ucsb.edu
Office hour: Mondays 3:00 PM - 3:45 PM PT, HFH 2119

Teaching Assistants

No TA for this class


Tuesdays and Thursdays
11:00 AM - 12:00 PM (PT), Phelps 3526

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 1 paper presentation, and 3 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 to one research paper from a list of provided research papers throughout different topics, make some slides, and present to the entire class. The presentation will be performed only by yourself, with a duration of about 20 minutes. The paper presentation takes up 25% of your final grade.

The 3 projects are CHOSEN BY YOURSELF from 4 potential project topics listed in the course syllabus. In case you are not familiar with OpenGL/DirectX/Vulkan, we also provide an OPTIONAL warm-up project (Project 0, will not be graded) for you to get started. Each chosen project takes up 25% 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 PT 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 will be provided in the project descriptions.

Course Syllabus
Week Date Topics
1 Apr 2 Introduction and Overview [Slides]
Apr 4 Recap: Blinn-Phong Reflectance Model, Graphics Pipeline, Shading Languages, Rendering Equation [Slides]
[Project 0 out: A Real-time Object Viewer] [Description]
2 Apr 9 Soft Shadow Techniques 1 (Shadow Mapping and Percentage Closer Filtering) [Slides]
Apr 11 Soft Shadow Techniques 2 (Variance Soft Shadow Mapping and SDF Shadows) [Slides]
[Project 1 out: Percentage Closer Soft Shadows] [Description]
3 Apr 16 Interactive Global Illumination Techniques (Reflective Shadow Maps, VXGI) [Slides]
Apr 18 Interactive Global Illumination Techniques (Ambient Occlusion, Screen Space Reflection) [Slides]
[Project 2 out: Global Illumination Techniques] [Description]
4 Apr 23 Real-time Shading and Appearance (Microfacet Model and Multiple Bounce Approximation)
Apr 25 Real-time Shading and Appearance (Multiple Bounce Approximation Cont., Split Sum)
[Project 3 out: Kulla-Conty Multiple-Bounce BRDF]
5 Apr 30 Real-time Shading and Appearance (Subsurface Scattering, Hair, Non-Photorealistic Rendering, Tiled Shading)
May 2 Real-Time Ray Tracing (Motion Vector and Temporal Accumulation)
6 May 7 Real-Time Ray Tracing (Joint Bilateral Filtering and SVGF)
[Project 4 out: Real-Time Ray Tracing]
May 9 Real-Time Ray Tracing (Many Light Methods and ReSTIR)
7 May 14 Modern Industrial Solutions to Real-Time Rendering
May 16 Soft Shadow Techniques (Student Presentation)
Dimitrov et al., Cascaded Shadow Maps, 2007
Lokovic and Veach, Deep Shadow Maps, SIGGRAPH 2000
Annen et al., Real-Time, All-Frequency Shadows in Dynamic Scenes, SIGGRAPH 2008
Lauritzen et al., Virtual Shadow Maps in Fortnite Battle Royale, 2023
8 May 21 Interactive Global Illumination Techniques (Student Presentation)
Anton Kaplanyan, Light Propagation Volumes, SIGGRAPH 2009 Course
Ritschel et al., Imperfect Shadow Maps for Efficient Computation of Indirect Illumination, SIGGRAPH Asia 2008
Majercik et al., Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields, JCGT 2019
May 23 No Class (Scheduled Committee Meeting)
9 May 28 Real-Time Shading and Appearance (Student Presentation)
d'Eon et al., Efficient Rendering of Human Skin, EGSR 2007
Heitz et al., Real-Time Polygonal-Light Shading with Linearly Transformed Cosines, SIGGRAPH 2016
Rousiers et al., Real-Time Rough Refraction, I3D 2011
Pelzer et al., Rendering Countless Blades of Waving Grass, GPU Gems
May 30 Real-Time Ray Tracing (Student Presentation)
NVIDIA, Deep Learning Super Sampling 2.0, GTC 2020
Chaitanya et al., Interactive Reconstruction of Monte Carlo Image Sequences
using a Recurrent Denoising Autoencoder
Guo et al., ExtraNet: Real-time Extrapolated Rendering for Low-latency Temporal Supersampling, SIGGRAPH Asia 2021
Zeng et al., Temporally Reliable Motion Vectors for Real-time Ray Tracing, Eurographics 2021
10 Jun 4 TBD (Buffer for Potentially More Student Presentations)
Jun 6 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.