FidelityFX Combined Adaptive Compute Ambient Occlusion (CACAO) is an RDNA-optimized implementation of ambient occlusion.
Open source. MIT license
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 ambient occlusion 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.
| OUR OTHER EFFECTS
FidelityFX LPM provides an open source library to easily integrate HDR and wide gamut tone and gamut mapping into your game.
The AMD FidelityFX SSSR effect provides an open source library to easily integrate stochastic screen space reflections into your game.
FidelityFX Single Pass Downsampler (SPD) provides an RDNA-optimized solution for generating up to 12 MIP levels of a texture.
A multithreaded CPU library for deformable material physics, using the Finite Element Method (FEM)
Radeon™ Cauldron is our open source experimentation framework for DirectX®12 and Vulkan®.
FidelityFX Contrast Adaptive Sharpening (CAS) provides a mixed ability to sharpen and optionally scale an image.
The DepthOfFieldFX library provides a GCN-optimized Compute Shader implementation of Depth of Field using the Fast Filter Spreading approach.
GeometryFX improves the rasterizer efficiency by culling triangles that do not contribute to the output in a pre-pass. This allows the full chip to be used to process geometry, and ensures that the rasterizer only processes triangles that are visible.
ShadowFX library provides a scalable GCN-optimized solution for deferred shadow filtering. It supports uniform and contact hardening shadow (CHS) kernels.
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.