We’re working on a major upgrade to URP’s Screen Space Ambient Occlusion, as part of a larger initiative to improve URP’s graphical fidelity, and we aim to ship it in Unity 6.7. Today we’re pleased to show a first version and we’d love for you to try it out and tell us what you think.
What is GTAO?
The Ground Truth Ambient Occlusion (GTAO) estimates how much of the hemisphere above each pixel is blocked by nearby geometry, by integrating horizon angles read from the depth buffer. Unlike URP’s previous ambient occlusion, it produces more physically-grounded contact shadows with less over-darkening, and it can be denoised with spatial and temporal filtering so it stays clean even at low sample counts. The existing SSAO algorithm [Alchemy] continues to be supported, so you can adopt GTAO where you want it and keep the previous look everywhere else.
Getting Started
The full guide to enabling and configuring the feature is here: URP Ambient Occlusion Guide. In short:
-
Get the latest Alpha release (at least Unity 6000.7.0a1).
-
(Alpha only) Add the MODERN_SSAO scripting define to your project to unhide the new options.
-
Enable the Screen Space Ambient Occlusion Renderer Feature on your URP Renderer, as before.
-
Add a Screen Space Ambient Occlusion override to a Volume in your scene, set Mode to GTAO, and tune it from there.
Once you’ve tried it, please help us focus our efforts by filling out this short survey: URP GTAO Ambient Occlusion -URP GTAO Ambient Occlusion - Product Experience Feedback. If you hit any bugs or anything not covered in the guide, let us know in this thread.
What’s new compared to the previous URP SSAO
- Ground Truth Ambient Occlusion (GTAO): We have introduced a more physically-accurate algorithm alongside [Alchemy] SSAO. You can now toggle between these modes via a new dropdown, allowing for superior contact shadows. The “None” setting also enables you to bypass AO while keeping your parameters intact.
- Volume-Based Configuration: SSAO is now integrated into the Volume system, enabling authoring and blending variations of SSAO settings within the Scene. While global Renderer Feature settings are kept for reference, the Volume overrides are now authoritative at runtime. This ensures that existing projects maintain their current look until you choose to upgrade.
- Compute Shader Path: For enhanced fidelity, GTAO leverages compute shaders to provide granular control over step and direction counts. A raster fallback is available for broader compatibility, though the compute path is broadly supported across mobile and desktop platforms, including WebGPU and OpenGL.
- Spatial filtering: The compute path adds selectable spatial denoisers, including Bilateral, and Box filters. These help GTAO stay clean even at low direction/step counts, and optionally at reduced resolution.
- Temporal filtering: An optional temporal accumulation path reprojects and blends AO across frames using motion vectors, producing more stable, low-noise results during motion.
FAQ
Does GTAO replace URP’s existing SSAO?
No. The existing algorithm is kept as the SSAO mode and your current projects render exactly as before. GTAO is an additional, higher-quality option you opt into per scene.
Do I need compute shaders to use GTAO?
GTAO runs through either a raster fallback or a compute path. The compute path is recommended and is required for temporal filtering and the advanced spatial filters.
Does GTAO require motion vectors?
Only the temporal filter does - it needs motion vectors to reproject the previous frame. Spatial-only GTAO does not.
Can I still configure SSAO from the Renderer Feature?
While it is still possible to use the Renderer Feature for configuration, we keep these settings primarily as a reference or fallback to ensure existing projects maintain their current look during migration. Please be aware that these parameters remain subject to adjustment as we continue to polish the Volume-based workflow in the future.
How does GTAO affect performance?
GTAO costs a little more than SSAO. You can dial it in with quality presets, lower direction/step counts, downsampling, and your choice of spatial filter, and lean on temporal accumulation to keep quality high at a low per-frame cost.



