Ambient Occlusion
Ambient occlusion darkens creases, contact points and enclosed areas that ambient light should not fully reach. It is one of the cheapest ways to make a scene read as grounded, and one of the most common places to overspend.
Vite optimised SSAO
Vite rewrites the memory access pattern of the stock UE4.27 screen-space AO pass. It produces the same result as the stock path at lower cost, and is enabled by default.
Control | Default | Notes |
|---|---|---|
|
| Shipping builds are locked to this value |
|
| Development builds only. |
The runtime CVar exists so you can A/B the optimised path against stock during development, which is how the optimisation was validated. In Shipping the CVar does not exist at all — the path is compiled in. See Compile-Time Switches.
Standard UE4.27 SSAO settings all still apply and are found under Rendering Features > Ambient Occlusion in a post process volume: Intensity, Radius, Quality, Power, Bias, Fade Out Distance and the rest.
HBAO+
Horizon-Based Ambient Occlusion is NVIDIA's higher-quality AO technique, inherited through the NvRTX branch. It samples the depth buffer along horizon directions rather than in a screen-space sphere, which produces more accurate occlusion in creases and less of SSAO's characteristic haloing around object silhouettes.
HBAO+ multiplies over the screen-space AO buffer rather than replacing it, so both run when it is enabled.
Enabling
CVar | Default | Effect |
|---|---|---|
|
| Master enable |
|
|
|
|
|
|
Post process volume settings
Once enabled, HBAO+ is tuned per post process volume under the HBAO+ category. These are Blueprint read/write, so they can be driven at runtime.
Setting | Default | Range | Purpose |
|---|---|---|---|
Power Exponent |
| 0–4 | Darkening curve applied to the AO result. Higher is more contrasty. |
Radius |
| 0.1–2 | World-space sampling radius in metres |
Bias |
| 0–0.2 | Rejects samples below this angle. Raise to remove self-occlusion on flat surfaces. |
SmallScale AO |
| 0–1 | Weight of fine-detail occlusion |
Blur Radius | 2 pixels | Disabled / 2px / 4px | Noise reduction blur |
Blur Sharpness |
| 0–32 | Edge preservation during blur. Higher preserves more edges. |
Max Depth |
| 0–400+ | View depth beyond which HBAO+ stops being computed |
Depth Sharpness |
| 0–100 | Depth discontinuity sensitivity |
Clamp Foreground AO | off | — | Limits AO on near geometry |
Foreground AO Distance |
| 0–1000 | Distance used by the foreground clamp |
Clamp Background AO | off | — | Limits AO on distant geometry |
Background AO Distance |
| 0–10000 | Distance used by the background clamp |
Radius is the setting that matters most and is most often wrong. It is in metres, and the correct value depends entirely on scene scale. An interior with human-scale props wants a small radius; a large exterior wants a larger one. Too large produces soft grey wash across everything; too small produces occlusion only in the tightest creases.
Max Depth is a straightforward performance lever. Distant geometry contributes very little visible AO, so lowering this value reduces cost with minimal visual change. Check the result against a fly-through before committing to an aggressive value.
Ray-traced ambient occlusion
RTAO is covered in detail in RT Shadows and Ambient Occlusion. In brief: it traces actual occlusion rays, so it handles off-screen occluders correctly and does not suffer from screen-space AO's fundamental limitation of only knowing about what is visible.
It is also the most expensive of the three, and requires DXR.
Choosing
Target | Recommended configuration |
|---|---|
Stylised 4K120 | Vite SSAO only |
Performance High End 4K60 | Vite SSAO, HBAO+ if there is headroom |
Fidelity High End 4K30 | Vite SSAO + HBAO+ |
Fidelity Full RT 1440p30 | RTAO |
The general rule is that AO should be the cheapest thing in your frame that produces its result. If DDGI is already resolving the indirect lighting in a space correctly, heavy AO on top of it is double-darkening — you are subtracting light that the GI solution never added.