# Temporal Denoising

## Reprojection Filter

Defines a reprojection filter used for temporal history fetch. **Linear** is fast but introduces blur, while **Bicubic** is slower but much sharper. This option affects only the sharpness of the reprojection, not its effectiveness.

{% hint style="warning" %}
The filter is applied only to the history, meaning the sharpening effect will be visible during motion. It isn't a general-purpose sharpening effect (like **CAS**) and will have no impact on the stationary image.
{% endhint %}

*Performance impact: moderate, activate only if necessary*

{% tabs %}
{% tab title="Linear" %}

<div data-full-width="false"><figure><img src="/files/ZzSylYTjiIq6D8cWObLe" alt=""><figcaption><p> 3X Zoom</p></figcaption></figure></div>
{% endtab %}

{% tab title="Bicubic" %}

<figure><img src="/files/HBxOkbMIpRM3pYZn5udN" alt=""><figcaption><p>3X Zoom</p></figcaption></figure>
{% endtab %}
{% endtabs %}

## Rejection Threshold

Controls the strictness of temporal history rejection, depending on the selected [Rejection Mode](#use-simple-rejection). In **Simple** mode, this threshold applies to the entire frame; otherwise it applies selectively only to occlusion cast **from** and **onto** moving objects.

The example below shows how the occlusion from the moving sphere onto the static wall isn't responsive enough and lags behind the sphere when the Rejection Threshold parameter is set to a low value. When it's increased, the denoiser suppresses the lag and makes the occlusion far more responsive.

*Performance impact: none*

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLiPpxgft87FiOXU8wYFQ%2Fuploads%2FCrM899lTuv3jDNePPXJQ%2FDocumentation%20Rejection%20Static-8.mp4?alt=media&token=bb9f5e12-ee84-4dd7-a042-ea65fd87832e>" %}

## Use Simple Rejection

Switches temporal rejection to a simplified mode that uses a TAA-like color clamping mechanism across the entire frame. It saves performance, but the [Rejection Threshold](#rejection-threshold) parameter is applied to every pixel and does not distinguish between dynamic and static AO areas. When disabled, a more advanced algorithm is used so the temporal denoiser can detect pixels with moving occlusion and selectively reject them based on velocity and other characteristics.

*Performance impact: beneficial*

## Use Normal Weighting

Specifies whether the difference in surface normals should be considered during temporal history reprojection. This option can mitigate minor reprojection artifacts where occlusion from one surface leaks onto another, unoccluded surface. Such artifacts typically occur on small, irregular geometry. This option is incompatible with the **Bicubic** [Reprojection Filter ](#reprojection-filter)and is therefore hidden when it is selected.

*Performance impact: small*


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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/settings-and-properties/gtao-settings/gtao-denoising/temporal-denoising.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.
