BRDF Importance Sampling for Linear Lights
2021–07 in Computer Graphics Forum (Proc. HPG) 40, 8.
We introduce an efficient method to sample linear lights, i.e. infinitesimally thin cylinders, proportional to projected solid angle. Our method uses inverse function sampling with a specialized iterative procedure that converges to high accuracy in only two iterations. It also allows us to sample proportional to a linearly transformed cosine. By combining both sampling techniques through suitable multiple importance sampling heuristics and by using good stratification, we achieve unbiased diffuse and specular real-time shading with low variance outside penumbrae at two samples per pixel. Additionally, we provide a fast method for solid angle sampling.
This work has been presented at HPG 2021 on July 7th 2021. The author's version has been published on June 18th.
Downloads and links
- Blog post series about the renderer
- Blog post about BRDF importance sampling
- Source code on GitHub (branch linear_lights)
- Code without data and dependencies (0.3 MB)
- Code with data and dependencies (251 MB)
- Additional scenes (Bistro, 724 MB)
- Python code for slides
- Blog post about Matplotlib slides
- Fast forward video (00:30)
- Presentation video (19:37)
- Fast forward on Youtube
- Presentation on Youtube (with Q&A)