Less Can Be More: A Footprint-Driven Heuristic to Skip Wasted Connections and Merges in Bidirectional Rendering
Implementation of the EGSR 2025 paper "Footprint-driven cost reduction for bidirectional rendering"
https://doi.org/10.2312/sr.20251180
Bidirectional rendering algorithms can robustly render a wide range of scenes and light transport effects. Their robustness stems from the fact that they combine a huge number of sampling techniques: Paths traced from the camera are combined with paths traced from the lights by connecting or merging their vertices in all possible combinations. The flip side of this robustness is that efficiency suffers because most of these connections and merges are not useful – their samples will have a weight close to zero. Skipping these wasted computations is hence desirable. Prior work has attempted this via manual parameter tuning, by classifying materials as “specular”, “glossy”, or “diffuse”, or via costly data-driven adaptation. We, instead, propose a simple footprint-driven heuristic to selectively enable only the most impactful bidirectional techniques. Our heuristic is based only on readily available PDF values, does not require manual tuning, supports arbitrarily complex material systems, and does not require precomputation.
To run (and build) the default experiment use the following command-line in your favorite terminal:
cd Experiments
dotnet run -c Release
The executable allows the following arguments to be passed alongside it:
--help
To get the following help displayed in the terminal.--width [NW]
,--height [NH]
Change the default (1280x720) image size to [NW]x[NH].--eq-sample [N]
Conduct a equal-sample benchmark instead of an equal-time with [N] samples.--time [S]
Change the default maximum rendertime (30s) to [S] seconds.--no-reference
Do not try to compute a reference automatically.--scene
Load a specific scene instead of the defaults. Can be specified multiple times.
To specify arguments for the application using dotnet
use the following example:
cd Experiments
dotnet run -c Release -- --width 800 --height 600 --time 300 --no-reference --scene RGBSofa --scene StillLife
Results after a successful run can be found in the corresponding Experiments/Results*/
directory. The actual name of the result directory depends on the user arguments. Default is Experiments/ResultsEqTime30s/
.
The environment variable SEESHARP_SCENE_DIRS
can be used to add directories containing scenes.
This project is divided into multiple directories
Experiments/
Contains the code to evaluateOurs
against theBaseline
and aPathTracer
. Also contains the results after a successful run.Integrators/
Contains the reference implementation of our heuristicOurs
.Scenes/
Contains scenes to evaluate against.
This project ships the following scenes used for the evaluation in the paper:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
This project was funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) – 540768663.
@inproceedings{Yazici2025,
booktitle = {Eurographics Symposium on Rendering},
editor = {Wang, Beibei and Wilkie, Alexander},
title = {{Less can be more: A Footprint-driven Heuristic to skip Wasted Connections and Merges in Bidirectional Rendering}},
author = {Yazici, Ömercan and Grittmann, Pascal and Slusallek, Philipp},
year = {2025},
publisher = {The Eurographics Association},
ISSN = {1727-3463},
ISBN = {978-3-03868-292-9},
DOI = {10.2312/sr.20251180}
}