# HTrace GTAO vs. URP SSAO

{% hint style="warning" %}
The following comparison is performed in the HDRP Demo Scene on a laptop RTX 3060 6GB, 1920 x 1080 native.
{% endhint %}

## Overall Quality

URP's screen-space ambient occlusion appears to be based on the [The Alchemy Screen-Space Ambient Obscurance Algorithm](https://research.nvidia.com/sites/default/files/pubs/2011-08_The-Alchemy-Screen-space/paper.pdf) rather than any of the known horizon-based approaches. However, it's still closer to HTrace GTAO mode than to [SSAO mode](/htrace-ao/settings-and-properties/ssao-settings.md), so we will be comparing it against **HTrace GTAO**.

For the following 2 screenshots, both algorithms were tuned to roughly match in performance and visual appearance in terms of coverage and intensity. **URP SSAO** severely lacks small and medium scale detail, producing noticeable halo and stripe-like artifacts, and suffers from uneven occlusion.

{% tabs %}
{% tab title="URP SSAO (\~1.4ms)" %}

<figure><img src="/files/2liVAKh3GHUvKuk5iKmO" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="HTrace GTAO (\~1.4ms)" %}

<figure><img src="/files/CDmGoctL3iA1DaPBRYVO" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="URP SSAO Settings" %}

<figure><img src="/files/5B8CNIKUL1HVsDTYiOQr" alt="" width="465"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="HTrace GTAO Settings" %}

<figure><img src="/files/xtKjUnZNTYwSfgsU9kzP" alt="" width="464"><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

## Peak Quality

**URP SSAO** doesn't scale well in terms of tracing and denoising quality. As a result, even when performance or resolution are not limiting factors and higher quality is desired, it isn't always achievable with URP's occlusion. **HTrace GTAO** offers higher scalability, providing much better visual results.

{% hint style="warning" %}
**URP SSAO** parameters are set to the "High" preset here, while **HTrace GTAO** uses its medium to high settings.
{% endhint %}

{% tabs %}
{% tab title="URP SSAO" %}

<figure><img src="/files/QkxmSpa82iUKVR7Jw4Ga" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="HTrace GTAO" %}

<figure><img src="/files/alA9YtcdHXWX03wZlj8d" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

## Resolution Scaling and Upscaling

Unlike **URP SSAO**, which offers only the [Downsample](https://docs.unity3d.com/6000.0/Documentation/Manual/urp/ssao-renderer-feature-reference.html) option, **HTrace GTAO** features 3 different [resolution modes](/htrace-ao/settings-and-properties/gtao-settings/gtao-quality.md#resolution): **Full**, **Half**, and **Quarter**, for more fine-grained performance control. On top of that, it provides a sharp and optimized upscaler for interpolating from any of these resolutions to the final target. This makes it more viable to render the effect at a lower resolution and then upscale it, retaining as much detail as possible.

{% tabs %}
{% tab title="URP SSAO Downsampled" %}

<figure><img src="/files/D7lyMQITF72ygzW4TiVJ" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="HTrace GTAO Quarter Resolution" %}

<figure><img src="/files/kZM2NHIGDS2Up2GNEffO" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

## Additional Features <a href="#additional-features" id="additional-features"></a>

Here is the list of most notable features HTrace GTAO offers **that are not present** in URP's SSAO implementation:

* [Exclude Receiving](https://ipgames.gitbook.io/htrace-ao/v2/settings-and-properties/shared-settings/visuals#exclude-receiving)
* [Exclude Casting](/htrace-ao/settings-and-properties/gtao-settings/gtao-visuals.md#exclude-casting)
* [Max Screen Space Radius](/htrace-ao/settings-and-properties/gtao-settings/gtao-visuals.md#screen-space-radius)
* [Adaptive | Half | Quarter Resolution](/htrace-ao/settings-and-properties/gtao-settings/gtao-quality.md#resolution)
* [Visibility Bitmasks](/htrace-ao/settings-and-properties/gtao-settings/gtao-quality.md#tracing-mode)
* [Thickness Control](/htrace-ao/settings-and-properties/gtao-settings/gtao-quality.md#thickness-mode-visibility-bitmasks)
* [Separate Denoising Modes](/htrace-ao/settings-and-properties/gtao-settings/gtao-denoising.md#denoising-mode)
* [Output Dithering](/htrace-ao/settings-and-properties/gtao-settings/gtao-denoising.md#output-dithering-hdrp)
* [Temporal Denoising](/htrace-ao/settings-and-properties/gtao-settings/gtao-denoising/temporal-denoising.md)
* [Temporal Rejection](/htrace-ao/settings-and-properties/gtao-settings/gtao-denoising/temporal-denoising.md#rejection-threshold)
* [Sharp Temporal Reprojection](/htrace-ao/settings-and-properties/gtao-settings/gtao-denoising/temporal-denoising.md#reprojection-filter)
* [Spatial Filter Selection](/htrace-ao/settings-and-properties/gtao-settings/gtao-denoising/spatial-denoising.md#filter-type)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ipgames.gitbook.io/htrace-ao/comparisons-with-unitys-ao/htrace-gtao-vs.-urp-ssao.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
