AMD FidelityFX Brixelizer GI

AMD FidelityFX™ Brixelizer GI is a compute-based real-time dynamic global illumination solution built upon the sparse distance fields from AMD FidelityFX Brixelizer.

It provides you with denoised indirect diffuse and specular lighting outputs that you can composite into your final lighting output.

Supports:

  • DirectX®12
  • Vulkan®

Part of the AMD FidelityFX™ SDK

AMD FidelityFX SDK components

Download the latest version as part of FidelityFX SDK v1.1​

AMD FidelityFX Brixelizer and AMD FidelityFX Brixelizer GI: 

  • Initial AMD FidelityFX Brixelizer/GI library release as part of AMD FidelityFX SDK 1.1

As part of AMD FidelityFX SDK v1.1:

  • AMD FidelityFX backend updates, including buffer allocator overrides
  • Updated documentation and release of reference documentation for SDK + Framework
  • Native Microsoft® GDK® backend implementation library (requires developer access to GDK® program)

As of FidelityFX SDK version 1.1, Brixelizer and Brixelizer GI are now unleashed to world so in this article we aim to discuss a few practical use cases and provide you with some tips you can apply for getting the most performance out of Brixelizer in your application.

Features

State-of-the-art algorithm

RDNA™-optimized

Smart shader selection (SM 6.6+ when present)

Open source, MIT license

Easy to integrate

Cross platform

Details

AMD FidelityFX Brixelizer + Brixelizer GI features the following:

  • Denoised indirect diffuse and indirect specular outputs
  • Implemented in compute without hardware-accelerated ray-tracing
  • Optional modes to output at lower than native resolutions
  • AMD FidelityFX Brixelizer and Brixelizer GI sample code
  • Native DirectX® 12 and Vulkan® SDK backend implementation libraries
  • Fully dynamic global illumination with multiple bounces

For more information, don’t miss our extensive documentation.

Find out more about the AMD FidelityFX SDK:

AMD FidelityFX SDK

The AMD FidelityFX SDK is our easy-to-integrate solution for developers looking to include FidelityFX features into their games.

Comparisons

Left: GI off, right: GI on

GI off GI on

Left: GI off, right: GI on

GI off GI on

Algorithm overview - Brixelizer

AMD FidelityFX Brixelizer is a library that generates sparse distance fields for triangle geometry in real-time for efficiently tracing rays against your scene.

It works with both static and dynamic geometry and provides a shader API to trace rays against the distance field. It generates cascades of sparse distance fields around a given position and each cascade is split into 64x64x64 voxels.

If a voxel intersects any geometry, it generates a local distance field within the voxel. These local distance fields are known as Bricks.

A top-down view of two Brixelizer cascades containing geometry
A visualization of a slice from the brick atlas 3D texture
AMD FidelityFX Brixelizer GI
Final lighting output of a 3D scene
SDF debug visualization of a 3D scene

Algorithm overview - Brixelizer GI

FidelityFX Brixelizer GI is a simplified implementation of AMD GI-1.0.

It takes in the G-Buffer resources of your application alongside the output resources from Brixelizer to generate Diffuse and Specular GI outputs.

Due to the lack of material information in the distance field from Brixelizer, we maintain an internal radiance cache which is populated by the previous frames’ lighting output.

Including just direct lighting will result in 1-bounce diffuse GI, whereas including the composited output from the previous frame gives you multiple bounces effectively for free.

Left: Radiance cache with one bounce, right: Radiance cache with multiple bounces.

Single bounce Multiple bounces

Next we spawn screen probes on the visible surfaces in the depth buffer and shoot rays using Brixelizer and sample the radiance cache for shading. 

These screen probes are then used to feed a world space irradiance cache that stores spherical harmonics probes for each valid brick. 

Visualization of screen probes
Visualization of the irradiance cache

Finally the outputs are resolved and denoised, leaving you with a Diffuse GI and Specular GI output that you can composite into your final lighting.

Denoised Diffuse GI output
Denoised Specular GI output
Final lighting output with GI composited

Additional resources

Requirements

Requires GCN-class GPUs and above.

Version history

AMD FidelityFX Brixelizer and AMD FidelityFX Brixelizer GI: 

  • Initial AMD FidelityFX Brixelizer/GI library release as part of AMD FidelityFX SDK 1.1

As part of AMD FidelityFX SDK v1.1:

  • AMD FidelityFX backend updates, including buffer allocator overrides
  • Updated documentation and release of reference documentation for SDK + Framework
  • Native Microsoft® GDK® backend implementation library (requires developer access to GDK® program)

All part of the FidelityFX SDK!

AMD FidelityFX SDK

AMD FidelityFX™ SDK

The AMD FidelityFX SDK is our easy-to-integrate solution for developers looking to include FidelityFX features into their games.

Don't miss our other effects

An image of a toy train blurring into the background

AMD FidelityFX™ Blur

AMD FidelityFX Blur is an AMD RDNA™ architecture optimized collection of blur kernels from 3×3 up to 21×21.

Shadow Denoiser

AMD FidelityFX™ Denoiser

AMD FidelityFX Denoiser is a set of denoising compute shaders which remove artefacts from reflection and shadow rendering.

FidelityFX Lens - bar room

AMD FidelityFX™ Lens

AMD FidelityFX Lens is an AMD RDNA™ architecture optimized implementation of some of gaming’s most used post-processing effects.

AMD FidelityFX Parallel Sort

AMD FidelityFX™ Parallel Sort

AMD FidelityFX Parallel Sort makes sorting data on the GPU quicker, and easier. Use our SM6.0 compute shaders to get your data in order.

TressFX

The TressFX library is AMD’s hair/fur rendering and simulation technology. TressFX is designed to use the GPU to simulate and render high-quality, realistic hair and fur.