AMD FidelityFX Ambient Occlusion logo

AMD FidelityFX™ Combined Adaptive Compute Ambient Occlusion (CACAO) is an AMD RDNA™-optimized implementation of ambient occlusion.

Supports:

  • DirectX®12.
  • Vulkan®.

Part of the AMD FidelityFX™ SDK

AMD FidelityFX SDK components

Download the latest version v1.1:

This release adds the following features:

  • Highly optimised native resolution SSAO.
  • Downsampled resolution SSAO quality improvements.

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

This release includes:

  • Now part of AMD FidelityFX SDK.
  • Introduces the ability to view pure AO versus lit AO results.

Xbox developer?

An example use of AMD FidelityFX CACAO exists within the Xbox Game Development Kit samples.

xbox

Features

Intelligent sampling

Open source, MIT license

Highly optimized

Details

In 3D graphics, one of the biggest challenges is creating high quality lighting. Calculating physically accurate lighting is too computationally expensive to be done in real time, so instead multiple approximate models are used to create believable lighting. 

One of these models is ambient lighting, which models indirect light in a scene. The most naïve ambient light model is to have ambient lighting constant across an entire scene. However, this can be greatly improved by ambient occlusion, in which there is less ambient light in areas with occluding geometry – for example in corners, where objects meet, nooks and crannies etc. This vastly improves believability of a scene and makes a scene easier to visually parse.

Computing ambient occlusion can be done in multiple ways. In static scenes ambient occlusion may be computed ahead of time. When this is done, the methods used are typically very expensive and take a long time to compute. However, in dynamic scenes in which content is not predictable ahead of time this is not an option. In this case the state of the art is to use screen space ambient occlusion, which computes the ambient occlusion each frame based on geometry rendered. When this approach is taken an implementation must be chosen which is a good balance of speed and quality.

The CACAO implementation is a highly optimized implementation of ambient occlusion. It may be run at multiple different quality settings, allowing it to meet multiple different requirements for quality performance trade-offs, and be run across a wide range of hardware.

Comparisons

AMD FidelityFX CACAO off/on

AMD FidelityFX CACAO on/debug view

AMD FidelityFX CACAO off/on in Dirt® 5

See AMD FidelityFX CACAO in action with DIRT® 5

Dirt5
Watch "Radeon RX 6000 Partner Showcase: Dirt 5 and Codemasters" on YouTube in a new window

You can also find AMD FidelityFX CACAO in World of Warcraft®: Shadowlands

WoW
Watch "Radeon RX 6000 Partner Showcase: WoW: Shadowlands and Blizzard Entertainment" on YouTube in a new window

Useful information

FidelityFX Testimonials

Find out what developers are saying about AMD FidelityFX.

Version history

Updated 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)
  • Now part of AMD FidelityFX SDK.
  • Introduces the ability to view pure AO versus lit AO results.
  • Highly optimised native resolution SSAO.
  • Downsampled resolution SSAO quality improvements.
  • Vulkan® support.
  • Initial release

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.