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
No TA for this class
Tuesdays and Thursdays
11:00 AM - 12:00 PM (PT), Phelps 3526
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.
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.
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) [Slides] |
Apr 25 | Real-time Shading and Appearance (Multiple Bounce Approximation Cont., Split Sum)
[Slides]
[Project 3 out: Kulla-Conty Multiple-Bounce BRDF] [Description] |
|
5 | Apr 30 | Real-time Shading and Appearance (Subsurface Scattering, Hair, Non-Photorealistic Rendering, Tiled Shading) [Slides] |
May 2 | Real-Time Ray Tracing (Motion Vector and Temporal Accumulation) [Slides] | |
6 | May 7 | Real-Time Ray Tracing (Joint Bilateral Filtering and SVGF)
[Project 4 out: Real-Time Ray Tracing] |
May 9 | 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 Peters et al., Moment Shadow Mapping, I3D 2015 Sloan and Cohen, Interactive Horizon Mapping, I3D 2015 Lauritzen et al., Virtual Shadow Maps in Fortnite Battle Royale, 2023 |
|
7 | May 14 | 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 Sannikov et al., Radiance Cascades: A Novel Approach to Calculating Global Illumination, Exilecon 2023 SEED – Electronic Arts, Global Illumination Based on Surfels, SIGGRAPH 2021 Jimenez et al., Practical Realtime Strategies for Accurate Indirect Occlusion, Technical Memo Boissé et al., GI-1.0: A Fast Scalable Two-Level Radiance Caching Scheme for Real-Time Global Illumination, AMD GPUOpen 2022 |
May 16 | Real-Time Shading and Appearance (Student Presentation)
Ramamoorthi et al., An Efficient Representation for Irradiance Environment Maps, SIGGRAPH 2001 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 Sadeghi et al., A Practical Microcylinder Appearance Model for Cloth Rendering, SIGGRAPH 2013 Kerbl et al., 3D Gaussian Splatting for Real-Time Radiance Field Rendering, SIGGRAPH 2023 Xu et al., Lightweight Neural Basis Functions for All-Frequency Shading, SIGGRAPH Asia 2022 |
|
8 | May 21 | Real-Time Ray Tracing (Student Presentation)
Chaitanya et al., Interactive Reconstruction of Monte Carlo Image Sequences using a Recurrent Denoising Autoencoder, SIGGRAPH 2017 Zeng et al., Temporally Reliable Motion Vectors for Real-time Ray Tracing, Eurographics 2021 Zeng et al., Ray-aligned Occupancy Map Array for Fast Approximate Ray Tracing, EGSR 2023 Kramer et al., Real-time Sparse Distance Fileds for Games, GDC 2023 Thonat et al., Tessellation-Free Displacement Mapping for Ray Tracing, SIGGRAPH Asia 2021 Rong et al., Jump Flooding in GPU with Applications to Voronoi Diagram and Distance Transform, I3D 2006 |
May 23 | No Class (Scheduled Committee Meeting) | |
9 | May 28 | Modern Industrial Solutions to Real-Time Rendering (ReSTIR) |
May 30 | Modern Industrial Solutions to Real-Time Rendering (Super Sampling and Frame Generation) | |
10 | Jun 4 | No Class |
Jun 6 | No Class |
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.