CS 888: Advanced Topics in Computer Graphics - Rendering


Latest news

  • Feb 3, 20221: The schedule for the rest is updated (except for one missing in Week 12).
  • Feb 1, 2021: The schedule for the week of Feb 8 is updated.
  • Jan 25, 2021: The schedule for the week of Feb 1 is updated. Corrected inconsistent wording regarding the deadline for submitting reviews. The deadline is at the end of Sunday each week before we discuss the papers.
  • Jan 16, 2021: The schedule for the first seminar session (on acceleration data structure) is available. The first paper review will be due by the end of Jan 24th.
  • Jan 16, 2021: The time slots for the Zoom sessions have been changed to Mon 11:00 am to 12:20 pm and Tue 1:00 pm to 2:20 pm. The next session will start at 11:00 am on Jan 18th (Mon). All times are in EST.

Summary

Rendering is widely used for synthesizing realistic images we all see in movies, TV commercials, and industrial design. This seminar-style course will consist primarily of paper presentations and discussions, and will consider papers encompassing a variety of topics including (but not limited to):
  • Efficient ray tracing
  • Stochastic sampling
  • Monte Carlo techniques
  • Appearance modeling
  • Rendering systems
  • Light transport simulation
We will mostly focus on so-called offline rendering techniques for physics-based light transport simulation. We will not cover much about fast approximation in real-time rendering for video games and interactive applications. We will encounter and use a variety of numerical, computational, and mathematical techniques and tools, such as numerical integration, efficient spatial queries, integral equations, stochastic models, signal processing, optics, parallel computation, efficient memory accesses, and so on. The course will be structured in the style of a seminar: students will take turns presenting papers, followed by a group discussion of the relative merits and limitations of the paper in question. Students are also expected to read each paper and submit a short summary of it each week. There will also be a small number of traditional lectures at the beginning to cover the logistics and basic concepts.

Course Goals:

  • Develop familiarity with a range of techniques and tools in rendering to catch up with the latest work in this field.
  • Build experience reading and evaluating technical papers, and giving presentations.
  • Have fun and find topics in rendering that you truly enjoy studying further.

Administrative Details

Time/Location: Online (Zoom), 11:00am to 12:20pm on Monday and 1:00pm to 2:20pm on Tuesday
Instructor: Toshiya Hachisuka
E-mail: toshiya.hachisuka@uwaterloo.ca
Office hours: By appointment and via online.

Course-related news and discussions will be communicated/managed via Slack, so please sign up and follow along. Recordings of the course (including discussion) will be made available after each class, but we will try finding the best possible time slot for all the enrolled students to have synchronous and interactive sessions via remote meetings. If you cannot participate in synchronous sessions for legitimate reasons, please be active in asynchronous discussions in Slack instead. LEARN will be used just for sharing recordings, grading, and submission of reviews.

Grade Breakdown:

  • Paper Presentations: 40%
  • Paper Reviews: 40%
  • Participation/Discussion (including asynchronous discussion on Slack): 20%

(Absence of) Course Project

Previous offerings of CS 888 often required a student to implement a certain technique as a course project. However, recognizing an unusual workload of homework/assignments for students under the current remote education setting, this offering of CS888 will not make it mandatory. Instead, you are evaluated based solely on paper reviews, paper presentations, as well as your participation in the discussion. However, you are encouraged to implement and test the techniques in each paper you present to understand its detail, though it is not mandatory. If you are particularly keen and would like to pursue a project with sufficient novelty outside the course, you are also encouraged to discuss with me to plan for paper submissions to proper venues.

Paper Presentations and Discussions

We are planning to use Zoom for synchronous presentation and discussion sessions and Slack for asynchronous discussion and announcements. Please make sure to have access to those tools if you have not used them before. You will give a few technical presentations (depending on the number of enrolled students), clearly describing the proposed technique and the novel contributions of the paper, and discussing the paper's strengths and weaknesses. The presenter should carry out sufficient background reading to understand the method in reasonable detail, answer questions, and be able to lead the group discussion afterward. The lectures at the beginning will cover some tips and ideas on how to discuss and present technical ideas. Even for papers that you are not assigned for presentation, you are still expected to read the paper and to participate in a discussion about it after the presentation. Please be prepared to be able to give a remote presentation (e.g., screen sharing and proper sound devices for presentation and discussion). If you are unable to give a remote presentation for some legitimate reasons, please consult me well in advance, and I will likely ask you to send me a recorded presentation instead. Your presentation and discussion afterward will be recorded and shared only among the enrolled students.

Paper Reviews

You should choose one paper from each week's schedule to submit a review. Reviews will be due at the end of Sunday right before the week in which the paper will be discussed. For consistency, prepare your review in PDF form using the follow LaTeX review template. The template is roughly following the SIGGRAPH review format that is used to evaluate actual SIGGRAPH submissions. Unlike actual reviews, however, you do not need to judge whether you accept the paper or not. I recommend you to import this LaTeX template to Overleaf to avoid losing your work by accident. You should mainly focus on the "Discussion" section, wherein you will analyze the paper's pros/cons. The previous offering of CS888 provides some tips on how to read and present papers, which I will also cover at the beginning of this course. As you read the paper, you should aim to be thorough and critical, but not necessarily negative; it can be just as important to properly recognize the merits of a paper as to identify its shortcomings.

Prerequisites

Enthusiasm for computer graphics and rendering is a must. Linear algebra, calculus, and statistics will be required depending on the paper we read. Experience with both numerical computing (e.g. CS370/371, CS475) and computer graphics (e.g., CS488) are recommended. Familiarity with some numerical techniques will be useful, though you are likely to learn new techniques as you read papers.

Schedule

The exact dates will be changed after the first week. The list of papers might be updated as we go, depending on the interests of students. The online edition of the pbrt book will be a useful reference in this course. The enrolled students will also have an access to the Graphics Codex (courtesy of Dr. Morgan McGuire).
  • Week 1: Introduction
    • Jan 11: Organization
    • Jan 14: Brief introduction of rendering
  • Week 2: Meta topics
    • Jan 18: How to read, review, and present technical papers
    • Jan 19: Example presentation and discussion by the instructor
  • Week 3: Acceleration data structures
    • Jan 25:
      • "Fast agglomerative clustering for rendering." presented by Cheryl
      • "Spatial splits in bounding volume hierarchies" presented by Logan
    • Jan 26:
      • "HLBVH: hierarchical LBVH construction for real-time ray tracing of dynamic geometry" presented by Rory
      • "Fast parallel construction of high-quality bounding volume hierarchies" presented by Ben
  • Week 4: Sampling
    • Feb 1:
      • "A comparison of methods for generating Poisson disk distributions" presented by Chengjie
      • "Compressive rendering: A rendering application of compressed sensing" presented by Shufan
    • Feb 2:
      • "Quasi-Monte Carlo image synthesis in a nutshell" presented by Ben
      • "Neural importance sampling" presented by Saiyue
  • Week 5: Materials
    • Feb 8:
      • "Generalization of Lambert's reflectance model" presented by Chengjie
      • "Rendering glints on high-resolution normal-mapped specular surfaces" presented by Lawrence
    • Feb 9:
      • "A comprehensive framework for rendering layered materials" presented by Saiyue
      • "Microfacet BSDFs generated from NDFs and explicit microgeometry" presented by Xinkai
  • Week 6: No class - Reading week
  • Week 7: Theories
    • Feb 22:
      • "Robust Monte Carlo methods for light transport simulation (Chapter 8)" presented by Ege
      • "Adjoints and importance in rendering: An overview" presented by Arash
    • Feb 23:
      • "A frequency analysis of light transport" presented by Ryusuke
      • "A radiative transfer framework for non-exponential media" presented by Rory
  • Week 8: Monte Carlo integration
    • Mar 1:
      • "Adjoint-driven Russian roulette and splitting in light transport simulation" presented by Sina
      • "Practical path guiding for efficient light transport simulation" presented by Tumay
    • Mar 2:
      • "Optimal multiple importance sampling" presented by Kevin
      • "Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting" presented by Logan
  • Week 9: Density estimation
    • Mar 8:
      • "Global illumination using photon maps" presented by Sina
      • "Progressive photon mapping: A probabilistic approach" presented by Kevin
    • Mar 9:
      • "A comprehensive theory of volumetric radiance estimation using photon points and beams" presented by Xinkai
      • "Unifying points, beams, and paths in volumetric light transport simulation" presented by Shufan
  • Week 10: No class - Additional pauses
  • Week 11: Markov chain Monte Carlo
    • Mar 22:
      • "Metropolis light transport" presented by Ege
      • "A simple and robust mutation strategy for the metropolis light transport algorithm" presented by Tumay
    • Mar 23:
      • "Manifold exploration: a Markov Chain Monte Carlo technique for rendering scenes with difficult specular transport" presented by Ziyuan
      • "Langevin Monte Carlo rendering with gradient-based adaptation" presented by Yuxiang
  • Week 12: Derivatives and Differences
    • Mar 29:
      • "Path differentials and applications" presented by Ziyuan
      • "Differentiable Monte Carlo ray tracing through edge sampling" presented by Yuxiang
    • Mar 30:
      • "Radiative backpropagation: an adjoint method for lightning-fast differentiable rendering" presented by Arash
      • "Gradient-domain metropolis light transport"
  • Week 13: Rendering systems
    • Apr 5:
      • "OptiX: a general purpose ray tracing engine" presented by Ryusuke
      • "Embree: a kernel framework for efficient CPU ray tracing" presented by Sina
    • Apr 6:
      • "Manuka: A batch-shading architecture for spectral path tracing in movie production" presented by Cheryl
      • "Arnold: A brute-force production path tracer" presented by Lawrence
  • Week 14: Optional
    • Apr 12: No class by default

Papers List

Unless we have made scientific arrangements in advance, papers for each week should be selected from below. You will need to read two papers per class, thus you will end up reading four papers per week. You need to select one paper out of four to write a review. Whether you are presenting or not, you are required to read all the four papers that are going to be discussed each week. This list, by no means, is an exhaustive list of papers you should read in rendering and there are many more excellent papers that are not in the list.
  • Acceleration data structures
    • "Heuristics for ray tracing using space subdivision.", MacDonald and Booth, The Visual Computer, 1990.
    • "On fast construction of SAH-based bounding volume hierarchies.", Wald, IEEE Symposium on Interactive Ray Tracing, 2007.
    • "Fast agglomerative clustering for rendering.", Walter, Bala, Kulkarni,and Pingal, IEEE Symposium on Interactive Ray Tracing, 2008.
    • "Spatial splits in bounding volume hierarchies", Stich, Friedrich, and Dietrich, Proceedings of the Conference on High Performance Graphics, 2009.
    • "HLBVH: hierarchical LBVH construction for real-time ray tracing of dynamic geometry", Pantaleoni and Luebke, Proceedings of High Performance Graphics, 2010.
    • "Fast parallel construction of high-quality bounding volume hierarchies.", Karras and Aila, Proceedings of the 5th High-Performance Graphics Conference, 2013.
  • Sampling
    • "Spectrally optimal sampling for distribution ray tracing", Mitchell, Proceedings of Computer Graphics and Interactive Techniques, 1991.
    • "A comparison of methods for generating Poisson disk distributions", Lagae and Dutré, Computer Graphics Forum, 2008.
    • "Compressive rendering: A rendering application of compressed sensing", Sen and Darabi, IEEE Transactions on Visualization and Computer Graphics, 2010.
    • "Quasi-Monte Carlo image synthesis in a nutshell", Keller, Monte Carlo and Quasi-Monte Carlo Methods, 2013.
    • "Progressive multi-jittered sample sequences", Christensen, Kensler, Kilpatrick, Computer Graphics Forum, 2018.
    • "Neural importance sampling", Müller, McWilliams, Rousselle, Gross, and Novák. ACM Transactions on Graphics, 2019.
  • Materials
    • "Generalization of Lambert's reflectance model", Oren and Nayar, Proceedings of the 21st annual conference on Computer graphics and interactive techniques, 1994.
    • "Light scattering from human hair fibers", Marschner, Jensen, Cammarano, Worley, and Hanrahan, ACM Transactions on Graphics, 2003.
    • "Understanding the masking-shadowing function in microfacet-based BRDFs", Heitz, JCGT, 2014.
    • "Rendering glints on high-resolution normal-mapped specular surfaces", Yan, Hašan, Jakob, Lawrence, Marschner, and Ramamoorthi, ACM Transactions on Graphics, 2014.
    • "A comprehensive framework for rendering layered materials", Jakob, d'Eon, Jakob, and Marschner, ACM Transactions on Graphics, 2014.
    • "Microfacet BSDFs generated from NDFs and explicit microgeometry", Ribardière, Bringier, Simonot, and Meneveaux, ACM Transactions on Graphics, 2019
  • Theories
    • "The rendering equation", Kajiya, Proceedings of Computer Graphics and Interactive Techniques, 1986.
    • "Robust Monte Carlo methods for light transport simulation" (Chapter 8), Veach PhD thesis: Stanford University, 1997.
    • "Adjoints and importance in rendering: An overview", Christensen, IEEE Transactions on Visualization and Computer Graphics, 2003.
    • "A frequency analysis of light transport", Durand, Holzschuch, Soler Chan, and Sillion, ACM Transactions on Graphics (TOG), 2005.
    • "A constructive theory of sampling for image synthesis using reproducing kernel bases", Lessig, Desbrun, and Fiume, ACM Transactions on Graphics, 2014.
    • "A radiative transfer framework for non-exponential media", Bitterli, Ravichandran, Müller, Wrenninge, Novák, Marschner, and Jarosz, ACM Transactions on Graphics, 2018.
  • Monte Carlo integration
    • "Optimally combining sampling techniques for Monte Carlo rendering", Veach and Guibas, Proceedings of Computer graphics and Interactive Techniques, 1995.
    • "Light transport simulation with vertex connection and merging", Georgiev, Krivánek, Davidovic, and Slusallek, ACM Transaction on Graphics, 2012.
    • "Adjoint-driven Russian roulette and splitting in light transport simulation", Vorba and Křivánek, ACM Transactions on Graphics, 2016.
    • "Practical path guiding for efficient light transport simulation", Müller, Gross, and Novák, Computer Graphics Forum, 2017.
    • "Optimal multiple importance sampling", Kondapaneni, Vévoda, Grittmann, Skřivan, Slusallek, and Křivánek, ACM Transactions on Graphics, 2019.
    • "Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting", Bitterli, Wyman, Pharr, Shirley, Lefohn, and Jarosz, ACM Transactions on Graphics, 2020.
  • Density estimation
    • "Global illumination using photon maps", Jensen, Eurographics workshop on Rendering techniques, 1996.
    • "Progressive photon mapping", Hachisuka, Ogaki, and Jensen, ACM Transactions on Graphics, 2008.
    • "Progressive photon mapping: A probabilistic approach", Knaus and Zwicker, ACM Transactions on Graphics, 2011.
    • "A comprehensive theory of volumetric radiance estimation using photon points and beams", Jarosz, Nowrouzezahrai, Sadeghi, and Jensen, ACM ansactions on Graphics, 2011.
    • "A path space extension for robust light transport simulation", Hachisuka, Pantaleoni, and Jensen, ACM Transactions on Graphics, 2012.
    • "Unifying points, beams, and paths in volumetric light transport simulation", Křivánek, Georgiev, Hachisuka, Vévoda, Šik, Nowrouzezahrai, and Jarosz, ACM Transactions on Graphics, 2014.
  • Markov chain Monte Carlo
    • "Metropolis light transport", Veach and Guibas, Proceedings of Computer Graphics and Interactive Techniques, 1997.
    • "A simple and robust mutation strategy for the metropolis light transport algorithm", Kelemen, Szirmay-Kalos, Antal, and Csonka, Computer Graphics Forum, 2002.
    • "Manifold exploration: a Markov Chain Monte Carlo technique for rendering scenes with difficult specular transport", Jakob and Marschner, ACM Transactions on Graphics, 2012.
    • "Multiplexed metropolis light transport", Hachisuka, Kaplanyan, and Dachsbacher, ACM Transactions on Graphics, 2014.
    • "The natural-constraint representation of the path space for efficient light transport simulation", Kaplanyan, Hanika, and Dachsbacher, ACM Transactions on Graphics, 2014.
    • "Langevin Monte Carlo rendering with gradient-based adaptation", Luan, Zhao, Bala, and Gkioulekas, ACM Transactions on Graphics, 2020.
  • Derivatives and Differences
    • "Path differentials and applications", Suykens and Willems, Eurographics Workshop on Rendering Techniques, 2001.
    • "Gradient-domain metropolis light transport", Lehtinen, Karras, Laine, Aittala, Durand, and Aila, ACM Transactions on Graphics, 2013.
    • "Image-space control variates for rendering", Rousselle, Jarosz, and Novák, ACM Transactions on Graphics, 2016.
    • "Differentiable Monte Carlo ray tracing through edge sampling", Li, Aittala, Durand, and Lehtinen, ACM Transactions on Graphics, 2018.
    • "Path-space differentiable rendering", Zhang, Miller, Yan, Gkioulekas, and Zhao, ACM Transactions on Graphics, 2020.
    • "Radiative backpropagation: an adjoint method for lightning-fast differentiable rendering", Nimier-David, Speierer, Ruiz, and Jakob, ACM Transactions on Graphics, 2020.
  • Rendering systems
    • "PantaRay: fast ray-traced occlusion caching of massive scenes", Pantaleoni, Fascione, Hill, and Aila, ACM Transactions on Graphics, 2010.
    • "OptiX: a general purpose ray tracing engine", Parker et al., ACM Transactions on Graphics, 2010.
    • "Embree: a kernel framework for efficient CPU ray tracing", Wald, Woop, Benthin, Johnson, and Ernst, ACM Transactions on Graphics, 2014.
    • "Manuka: A batch-shading architecture for spectral path tracing in movie production", Fascione et al., ACM Transactions on Graphics, 2018.
    • "Arnold: A brute-force production path tracer", Georgiev et al., ACM Transactions on Graphics, 2018.
    • "Mitsuba 2: A retargetable forward and inverse renderer", Nimier-David, Vicini, Zeltner, and Jakob, ACM Transactions on Graphics , 2019.

Academic integrity, grievance, discipline, appeals and note for students with disabilities

  • Academic integrity: In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility.
  • Grievance: A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70, Student Petitions and Grievances, Section 4. When in doubt, please be certain to contact the department’s administrative assistant who will provide further assistance.
  • Discipline: A student is expected to know what constitutes academic integrity to avoid committing an academic offence, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about “rules” for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate associate dean. For information on categories of offences and types of penalties, students should refer to Policy 71, Student Discipline. For typical penalties, check Guidelines for the Assessment of Penalties.
  • Appeals: A decision made or penalty imposed under Policy 70, Student Petitions and Grievances (other than a petition) or Policy 71, Student Discipline may be appealed if there is a ground. A student who believes he/she has a ground for an appeal should refer to Policy 72, Student Appeals.
  • Note for students with disabilities: AccessAbility Services, located in Needles Hall, Room 1401, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with AccessAbility Services at the beginning of each academic term.
  • Turnitin.com: Text matching software (Turnitin®) may be used to screen assignments in this course. Turnitin® is used to verify that all materials and sources in assignments are documented. Students' submissions are stored on a U.S. server, therefore students must be given an alternative (e.g., scaffolded assignment or annotated bibliography), if they are concerned about their privacy and/or security. Students will be given due notice, in the first week of the term and/or at the time assignment details are provided, about arrangements and alternatives for the use of Turnitin in this course.
  • It is the responsibility of the student to notify the instructor if they, in the first week of term or at the time assignment details are provided, wish to submit the alternate assignment.