Introducing AMD GI-1.2 with multibounce indirect real-time rendering

Originally posted:
Matthew Oliver's avatar
Matthew Oliver

We are announcing that AMD GI-1.2 and AMD Capsaicin Framework v1.3 are now available. GI-1.2 is an updated version of GI-1.1 which itself is based on GI-1.0 - our real-time Global Illumination solution.

New feature: Multibounce

In AMD GI-1.2, the bounce lighting approximation has been improved with a feature called multibounce.

Without multibounce
With multibounce
PNG (1920x1009)
PNG (1920x1009)

A limitation in GI-1.1 was that certain scenarios appeared darker than the path-traced scenes due to the 2nd-level cache only sampling direct light, effectively only modelling two bounces of light. The use of temporal radiance feedback, reusing the computed GI of previous frames as well as the direct light contribution, recovers some energy, but not enough to compare to the path-traced version.

Multibounce attempts to mitigate this by adding another bounce into the hash grid cache. This new hash grid cell extends the ray path, allowing GI-1.2 to capture light from further bounces.

An area where this has most effect is in reflections where the reflector isn’t in view. Below is an image comparison of the Sponza scene with reflections isolated.

Without multibounce
With multibounce
PNG (1920x1009)
PNG (1920x1009)

After the 1st hash grid cells have been created from rays traced from the screen probes, additional rays are traced from those hash grid cells, or 1st bounce cells, and another level of hash grid cells are created at the hit points of those rays, called the 2nd bounce cells. The 1st bounce cells get the direct light contribution, as well as an indirect light contribution from the 2nd bounce cells, while the 2nd bounce cells only get a direct light contribution.

Techniques in AMD GI-1.2

These steps describe the multibounce algorithm in AMD GI-1.2.

GI-1.2 first extends the ray path.

  • Rays are traced from the 1st bounce cells.
  • 2nd bounce cells are created at the hit points.

GI-1.2 then performs direct light evaluation.

  • Direct lighting is solved for 1st bounce and 2nd bounce cells.

Then radiance accumulation and filtering are performed.

  • Two separate Monte Carlo estimators are accumulated for each 1st bounce cell in order to keep track of the samples of direct and indirect light, respectively:
    • The new direct light sample is accumulated into the previously accumulated direct light samples.
    • The indirect light sample from step 4 in the previous frame is accumulated into the previously accumulated indirect light samples.
  • The same filtering between 1st bounce hash grid cells from GI-1.0 is used for the 2nd bounce hash cells.

The 2nd bounce cells are then resolved into 1st bounce cells.

  • The accumulated direct light from the 2nd bounce cells becomes an indirect sample for the 1st bounce cells.
  • This sample will be used in step 3 of the next frame.
  • Note: It’s important to multiply the contribution from the 2nd bounce cell with the BRDF at the 1st bounce cell when resolving, in order to approximate the rendering equation.

The 1st bounce cells are then resolved into screen probes.

  • The filtered direct and indirect radiance are fetched for each 1st bounce cell, divided by the sample count, and accumulated into the corresponding screen probes.
Without multibounce
With multibounce
PNG (1912x1009)
PNG (1920x1009)

For more details about multibounce, check out the corresponding master’s thesis or the GI-1.1 paper and the technical report on GI-1.0.

Getting AMD GI-1.2

If you want to see the AMD GI-1.2 algorithm in action or want to play with it, you can download it from the AMD Capsaicin Framework page.

AMD Capsaicin Framework v1.3

AMD Capsaicin Framework is our internal research framework for real-time graphics which we have been using to develop AMD GI-1 and the most recent GI-1.2. With this release we have also added several new features to the framework which can be used standalone or along with GI-1.2.

With the latest v1.3 release we now have HDR display support with automatic run-time detection and enablement of end-to-end HDR capabilities. We also now have DPI awareness to support the latest displays. Capsaicin now also uses AMD FidelityFX™ Super Resolution for real-time upscaling and TAA with run-time selection of the AMD FSR version, including the latest FSR 4 on AMD RDNA™ 4 architecture GPUs.

Capsaicin v1.3 also comes with a variety of internal framework improvements, features and bugfixes. For a more comprehensive list see the AMD Capsaicin Framework page for further details.

Matthew Oliver's avatar

Matthew Oliver

Matthew Oliver is a Senior Software Engineer with AMD’s Advanced Rendering Research group working on next generation graphics architectures and techniques. His research areas include development and analysis of high-quality rendering algorithms for both real-time and offline graphics workloads.