Guided ReSTIR FG+: Photon Resampling for Large Scenes and Many Lights

July 13, 2026 · View on GitHub

Introduction

This repository contains the source code and an interactive demo for the upcoming EGSR paper:

Guided ReSTIR FG+: Photon Resampling for Large Scenes and Many Lights
René Kern, Felix Brüll, Jonas Kastning, Thorsten Grosch
TU Clausthal

This prototype contains the implementation of Guided ReSTIR FG+, an efficient real-time global illumination algorithm that renders caustics in large scenes with many light sources.

This project was implemented using NVIDIA's Falcor rendering framework. See README_Falcor.md for the readme provided with Falcor.

You can download the executable demo from the Releases Page, or build the project by following the instructions in Building Falcor or the build instructions in the original readme.

Supplemental Video:

Contents:

Supplemental Resources

In addition to the supplemental video, we provide comparison videos for each scene using identical camera paths, as well as a 15-second equal-time comparison.

The following camera paths compare ReSTIR PT, (unguided) ReSTIR FG, Guided ReSTIR FG, and Guided ReSTIR FG+.

Kitchen:

Corridor:

Hotel:

Block Castle:

Other Resampling Algorithms

In addition to our algorithm, the reposiory and demo provides an implementation of ReSTIR FG (Lite) with our guiding approach.

Implementations of ReSTIR PT and the full (non-Lite) version of ReSTIR FG will be added soon.

Demo usage

The demo contains all four test scenes. After downloading the demo from the releases page, run StartDemo.bat and select the desired scene.

To test additional scenes that are not included with the demo, see the Testing with more Scenes section.

To change the rendering algorithm, use the Active Graph drop-down menu at the top of the UI window. Note that selecting an algorithm allocates the memory required for that algorithm. For more information about a setting, hover over the (?) icon.

Controls:

  • WASD - Camera movement
  • Left Click + Mouse movement - Change camera direction
  • Shift - Speed up camera movement
  • Q, E - Camera Down / UP
  • P - Opens the profiler that shows the Rendertime for each Pass ('ShadowPass' is ours).
  • F9 - Opens the time menu. Animation and camera path speed can be changed here (Scale).
  • F6 - Toggels Graphs UI menu (Enabled by default)

Testing with more Scenes

Testing with other scenes is possible, however, you may encounter unintended behaviour. The following points should be noted when loading other scenes:

  • A scene can be loaded in Mogwai with File->Load Scene.
  • Guided ReSTIR FG+ supports emissive materials and analytic point/spot lights. Photons are not distributed from environment maps or directional lights.
  • The scene currently need to have more than 1 light, this will be fixed in soon.

Falcor supports a variety of scene types:

Falcor Prerequisites

Optional:

  • Windows 10 Graphics Tools. To run DirectX 12 applications with the debug layer enabled, you must install this. There are two ways to install it:
    • Click the Windows button and type Optional Features, in the window that opens click Add a feature and select Graphics Tools.
    • Download an offline package from here. Choose a ZIP file that matches the OS version you are using (not the SDK version used for building Falcor). The ZIP includes a document which explains how to install the graphics tools.
  • NVAPI, CUDA, OptiX (see below)

Building Falcor

Falcor uses the CMake build system. Additional information on how to use Falcor with CMake is available in the CMake development documetation page.

Visual Studio

If you are working with Visual Studio 2022 or 2026, you can setup a native Visual Studio solution by running setup_vs2022.bat or setup_vs2026.bat after cloning this repository. The solution files are written to build/windows-vs2022 or build/windows-vs2026 and the binary output is located in build/windows-vs2022/bin or build/windows-vs2026/bin.

Contact

If you have any questions about the paper, the implementation, or encounter any issues while using this repository, please feel free to get in touch.

Email: rene.kern@tu-clausthal.de