UCSD CSE 272: Advanced Image Synthesis (Winter 2026)

Images we will render during the course. 3D data courtesy of Wenzel Jakob, Jonas Pilo, and Bernhard Vogl.


Images past students rendered for their final project. Authors from left top: Jerry Ma, Sohyun Yoo & Yuan Zhai, Xin Sheng & Jieyi Huang, Yiwei Zhang & Minnan Zhou, Minnan Zhou, Baichuan Peter Wu, Minjian Xin, Yijian Liu, Zhongrui Cao, Issac Nealey, Haolin Lu, Sarah Ekaireb, Xinyuan Liang, Mrigankshi Kapoor & Keli Wang, Kangming Yu & Zimu Guan




Course Description

This course discusses modern physically-based rendering techniques. Given a 3D scene description including the geometry, how surfaces and volumes reflect lights, the light source emission profiles, and the pose of a camera, physically-based rendering simulates the interactions between photons, surfaces, and volumes and produces an image. Physically-based rendering is central to computer graphics, and is becoming ever more crucial to domains outside of graphics such as computer vision, computational imaging, machine learning, and robotics, with applications in autonomous driving, training artificial intelligence agents, biomedical imaging, photography, and more. We will go through how we model the appearance of scenes (e.g., how do hair reflect lights? do objects change appearance when they become wet?), how we simulate light transport of surfaces and volumes efficiently, and how we invert the light transport process via differentiation. Throughout the course, we will build a renderer with the capability of rendering layered materials, volumes, and more with modern rendering algorithms. We will also play a bit with modern real-time rendering engines such as Unreal Engine 5. If you have taken CSE 168 and want more -- you should come! If not, make sure you are familiar with the content in the Required Knowledge.

Required Knowledge

Vector calculus, probability, and C++ programming. Go through all three books in the ray tracing in one weekend series if you are not familiar with the topic.

Logistics

Instructor: Tzu-Mao Li
TA: Trevor Hedstrom
Lectures: Monday/Wednesday/Friday 2:00pm-2:50pm at DIB 122
Instructor office hour: Wednesday 3-4pm at CSE 4116.
TA office hour: Thursday 2pm-3pm at B275.
We will do most of the online discussions and announcements on Piazza.

Grading

There will be 3 programming homeworks (20% each) and 1 final project (40%).
A bonus 10% is also associated with questions submitted on Canvas (1% for each question each week).
Late penalty: score * clamp(1 - (seconds passed after midnight of the deadline day) / (86400*7), 0, 1) (no late submission for the final project)
We will use the time on Canvas to determine how many seconds have passed.

Homeworks and Projects

The homeworks involve quite a bit of programming and can be tough for the inexperienced. Start early and ask questions! Many of them will be based on the lajolla renderer.
Homework 0 (not graded): Introduction to the lajolla Renderer
Homework 1 (20%): Disney Principled BSDF (due 1/23)
Homework 2 (20%): Volumetric Path Tracing (due 2/11)
Homework 3 (20%): Real-time Rendering (due 2/23)
Final Project (40%): proposal due 2/27, check point due 3/9, final due 3/19.
Collaboration policy: for the homeworks, you need to do it yourself (you are free to discuss between peers). For the final project, you can have a team maximum of 2 people.
LLM policy: We do not recommend using large language models for the programming assignments and projects. Coming up with the solutions yourself is an important part of the learning process for building the correct mental models. Treat LLMs as another TA/tutor: you should not use any of the code they generated just like you should not use the code TA generated. Though we encourage you to direct the questions to us, since questions are good feedback for us. If you use LLMs for your assignments, you should report your usage: be detail in your report, don't just say "I used LLMs".

Schedule (tentative)

1/5/2026 (Mon): Introduction [slides] [Malley's method]

Why physically-based rendering in 2026!? Course overview. Walkthrough of a simple path tracer.

1/7/2026 (Wed): Walkthrough of the lajolla renderer [slides] [triangle sampling]

Next event estimation. Multiple importance sampling. Triangle intersection. Textures. Shading normals. Environment maps.

1/9/2026 (Fri): Bidirectional Reflectance/Scattering Distribution Functions [slides]

Measured BRDFs, Half-vector parametrization. Microfacet theory. Refractive microfacets. Fresnel equation. Multiple-scattering inside the microfacets.

1/12/2026 (Mon): Uber BSDF [slides]

Disney BRDF and BSDF. Autodesk/Arnold Stanford Surface

1/14/2026 (Wed): Normal map filtering [slides]

LEAN mapping. LEADR mapping. Glints rendering.

1/16/2026 (Fri): Layered BSDFs [slides]

Adding Equation. Statistical operators. Position-free BSDF.

1/19/2026 (Mon): Martin Luther King's day, no class this day.

1/21/2026 (Wed): Hair and Cloth [slides]

Marschner. d'Eon. Chiang. Ply-based Fabrics.

1/23/2026 (Fri): Wave-based Rendering (Homework 1 due) [slides]

Wave optics. Iridescence, Diffraction shaders. Diffractive microfacets. Wigner BSDF. Wave-based fiber. Wave Tracing

1/26/2026 (Mon): Participating media [slides]

Radiative tranfer equation. Transmittance. Phase function. Rayleigh scattering.

1/28/2026 (Wed): Transmittance estimation and free-flight sampling [slides]

Ray marching. Delta tracking. Ratio tracking. Null-scattering formulation.

1/30/2026 (Fri): Microflake theory [slides]

Microflakes. SGGX. Unifying microflakes and microfacets. Hybrid level-of-details models. Spongecake.

2/2/2026 (Mon): Stochastic geometry [slides TBD]

Objects as volumes. Gaussian Process Implicit Surfaces.

2/4/2026 (Wed): Production rendering and real-time rendering. [slides]

Micropolygons. Ptex. Programmable shaders. Texture caches. TAA/DLSS. Real-time GI. Case studies: PRman, Manuka, Hyperion, Arnold, Unreal Engine 5, and Frostbite.

2/6/2026 (Fri): GPU architectures and neural architectures. [slides]

Coherency. Parallelism. Neural networks in graphics pipelines. RT Cores.

2/9/2026 (Mon): Nanite/real-time rendering [slides]

Streaming. Real-time rasterization.

2/11/2026 (Wed): Differentiable rendering (Homework 2 due) [slides]

Why Inverse Rendering? Automatic differentiation. Importance sampling. Detached vs attached sampling. Differential tracking.

2/13/2026 (Fri): Edge sampling for differentiable rendering [slides]

Edge sampling. Reynolds transport theorem. Material-form reparameterization. Path-space differentiable rendering.

2/16/2026 (Mon): President day, no class this day.

2/18/2026 (Wed): Warped-area sampling and projective sampling for differentiable rendering [slides]

Warped area sampling, reparameterization-based methods, and projective sampling.

2/20/2026 (Fri): Path-replay backpropagation, and differentiable rendering systems. [slides]

Constant memory backpropagation. Mitsuba 3. Slang.D.

2/23/2026 (Mon): Stratification [slides 1 and slides 2] (Homework 3 due)

Jittered sampling. Blue-noise sampling. Frequency analysis. Digital nets. Sobol' sequences.

2/25/2026 (Wed): Control variates [slides]

Correlated sampling. Ratio control variates. Weighted importance sampling. Residual Path Rendering.

2/27/2026 (Fri): Path-space and bidirectional path tracing (Final project proposal due) [slides]

Eric Veach

3/2/2026 (Mon): Photon mapping and its combination with bidirectional path tracing [slides]

Photon mapping. Bias-variance analysis of density estimation. UPS/VCM. UPBP. Path Graphs. Segment-based Light Transport

3/4/2026 (Wed): Metropolis light transport [slides]

Markov chain Monte Carlo. Kelemen-style and Veach-style. Langevin/Hamiltonian Monte Carlo. Diffusion models.

3/6/2026 (Fri): Rendering specular light paths [slides]

MCMC-based and Monte Carlo-based specular light path rendering. Hierarchical pruning.

3/9/2026 (Mon): Many-light rendering (Final project checkpoint due) [slides]

Virtual point lights. Lightcuts. Matrix sampling. Data-driven approach. ReSTIR.

3/11/2026 (Wed): Path re-using and importance resampling [slides]

Bekaert. Local virtual lights. ReSTIR/ReSTIR GI.

3/13/2026 (Fri): Cool stuff we do at UCSD. [slides]

Gaussian Integral Operators. Radiosity for Gaussian splatting. Rendering Glow Discharge.

3/19/2026 (Thu): Final project due