AMD relaunches GPUOpen with a suite of new FidelityFX tools
Open Source effects for the masses. More are coming!
Published: 11th May 2020 | Source: AMD |
AMD relaunches GPUOpen with a suite of new FidelityFX tools
This week, AMD plans to reveal new GPU Open tools every day, and that starts with FidelityFX, AMD's open-source shader-based effects. Until now, AMD's FidelityFX brand has been associated exclusively with AMD's Contrast Adaptive Sharpening technology, but now the name will mean a lot more to game developers.
One of the major benefits of AMD's new FidelityFX lineup of feature is that its Open Source nature will allow developers to easily integrate modify and expand AMD's toolset to better suit their games. Thanks to the open-source nature of FidelityFX, developers can also look at AMD's documentation and use it to create their own implementations, allowing FidelityFX to inspire the creation of more developer tools.
FidelityFX, Contrast Adaptive Sharpening
So far, FidelityFX Contrast Adaptive Sharpening has been integrated into several AAA games on PC, including Borderlands 3, Gears 5, Monster Hunter World, Star Wars Jedi: Fallen Order and F1 2019.
In every game we have tested, FidelityFX has allowed developers to increase the sharpness of their games without introducing artefacts or reducing the performance of their games significantly. In our experience, FidelityFX has only benefitted the games that It has bee integrated into, making it something that most developers should look into.
More information about FidelityFX Contrast Adaptive Sharpening (CAS) is available here.
Stochastic Screen Space Reflections
With Stochastic Screen Space Reflections (SSSR), AMD hopes to allow developers to enable screen space reflections in a manner which is more performance efficient than traditional SSR techniques. AMD then combines this lower-cost SSR toolset with a high-quality denoiser to enable SSR in a way that is highly optimised for AMD's RDNA and enables higher framerates.
Below is what AMD has to say about Stochastic Screen Space Reflections;
The term “Screen Space Reflections” describes an effect that can create realistic looking reflections purely based on information already present in the rendered image. The underlying algorithm shoots reflection rays from a depth imprint of the rendered scene (a so called “depth buffer”) and follows them in constant steps through the image until these rays intersect with the depth buffer again. Instead of taking constant sized steps, FidelityFX SSSR builds on an industry-leading algorithm that searches the rendered image in a hierarchical manner. This allows for larger and fewer steps on average, increasing performance of the search and quality of the final image.
To support glossy reflections, this FidelityFX effect jitters the reflection rays to create the sense of surfaces with varying roughness. However, that approach inherently introduces noise. Thus, FidelityFX SSSR comes with a high quality denoiser specifically optimized for the RDNA architecture. The denoiser combines the results from multiple frames to create a noise-free image. Furthermore, it allows to decrease the ray count based on surface roughness thus further speeding up screen space traversal.
You can read more about Stochastic Screen Space Reflections here.
Luminance Preserving Mapper (LPM)
HDR is only going to get more popular as we enter the next generation of console and PC hardware, making it vital for developers to have a toolset which will allow them to integrate HDR into their games without a major performance cost or another downside.
Full details about AMD's FidelityFX Luminance Preserving Mapper is available here.
FidelityFX Single Pass Downsampler (SPD)
The idea behind AMD's Single Pass Downsampler (SPD) is simple. AMD wants developers to have access to an RDNA-optimised solution which will allow developers to generate up to 12 MIP levels without a huge performance cost.
With this toolset, AMD can speed up texture creation and accelerate a game's post-processing pipeline by reducing Downsampling steps into a single pass. This will allow all mipmap levels to be accessed with a single hardware pass, which is a big deal given how frequently MIP levels are used in modern games.
More information about AMD's FidelityFX Single Pass Downsampler is available here.
Combine Adaptive Compute Ambient Occlusion
In most modern games, Ambient Occlusion is a vital effect which can add greatly to a title's realism, grounding rendered images into reality with believable lighting and ambient shadows. The problem with Ambient Occlusion is that it can be very expensive computationally.
With Combine Adaptive Compute Ambient Occlusion (CACAO), AMD has optimised Intel's implementation of ASSAO to offer users higher performance levels and five built-in quality settings. CACAO can also be run at a game's native resolution or using a lower base resolution, which can be upsampled to deliver higher performance levels. As gaming enters the 4K era, performance saving techniques like this will help developers achieve high framerates while maintaining high levels of graphical fidelity.
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.
More information about AMD's FidelityFX CACAO is available here.
On AMD's GPUOpen website, further details about all of these technologies and code samples are available for analysis.
You can join the discussion on AMD's new GPU Open technologies on the OC3D Forums.