# URP Specific

Some of the **UHFPS** features utilize the **URP Renderer Features**, which enhance the visual quality of the rendered graphics in Unity.

<figure><img src="https://2665493337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fh8bp6Jx5qkS4c0NEaWR1%2Fuploads%2FVt5XmwcgQ3PtwUNNJjXf%2FScreenshot_4.png?alt=media&#x26;token=0d980557-a784-4b03-90d1-8cc07b0ff4e4" alt=""><figcaption></figcaption></figure>

These renderer features can be found in the folder named **URP -> UHFPS Renderer**. All of these renderer functions must be in the order you see in the image, because these effects affect each other. The **Render Pass Event** also needs to be set to **After Rendering Transparents**.

### Screenshot

This renderer feature is utilized to capture a game screenshot when you save the game. It's important to call it **After Rendering Transparents** or **Before Rendering Post Processing** to ensure the resulting image provides a clear view of the game, free of any effects.

<figure><img src="https://2665493337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fh8bp6Jx5qkS4c0NEaWR1%2Fuploads%2FbBP7XhSFK5uP54AeFxaw%2FScreenshot_6.png?alt=media&#x26;token=cf35860a-f75e-4dfe-a4a8-20119610e5bf" alt=""><figcaption></figcaption></figure>

### Dual Kawase Blur

This renderer feature is used to blur the game view when you open the Inventory or Pause the game. It uses an image blurring technique that reduces the image size and blurs it. This technique is highly efficient. It's essential to call it **After Rendering Transparents** or **Before Rendering Post Processing**. This is because the transparent materials may not be blurred if it is utilized, for instance, **After Rendering Opaques**.

<figure><img src="https://2665493337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fh8bp6Jx5qkS4c0NEaWR1%2Fuploads%2FvZ59Evy1DCJpcTFDJyec%2FScreenshot_8.png?alt=media&#x26;token=6a172bff-6c35-4d48-8d48-3bb2ab2153cd" alt=""><figcaption></figcaption></figure>

### Render Focus Transparents On Top

As the name suggests, this render feature is used to render the **Focus** layer transparents on top of everything else, even when the game view is blurred. It is important to call this render feature after the blur is applied, which would be **After Rendering Transparents**.

<figure><img src="https://2665493337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fh8bp6Jx5qkS4c0NEaWR1%2Fuploads%2FMEwol0fysq6qQnsygEZ4%2FScreenshot_12.png?alt=media&#x26;token=9cf85e3d-1c03-434b-a436-3e2e03b91e28" alt=""><figcaption></figcaption></figure>

To make sure that the transparencies are rendered with the correct depth, it is necessary to have a new renderer feature with these settings. However, this feature must be called after the **Focus**, **Focus Transparents** and **Focus Depth**.

<figure><img src="https://2665493337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fh8bp6Jx5qkS4c0NEaWR1%2Fuploads%2FDHGOipEVM6tgfYUdzKbC%2FScreenshot_14.png?alt=media&#x26;token=456cb348-73a4-4b8b-8482-590198692b0e" alt=""><figcaption></figcaption></figure>

### Render Focus On Top

This render feature is quite similar to the previous one for rendering transparents. However, this feature is used to render opaques instead of transparents. Therefore, it is important to call this render feature after **Render Focus Transparents On Top**.

<figure><img src="https://2665493337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fh8bp6Jx5qkS4c0NEaWR1%2Fuploads%2FzfQWuLgEZkvETOxDqi9O%2FScreenshot_15.png?alt=media&#x26;token=967ea28e-8a25-46ba-9fb1-68d6d3d544c9" alt=""><figcaption></figcaption></figure>

Similar to the **Render Focus Transparents Depth** feature, this feature needs to be called after the **Render Focus** and **Focus Transparents**.

<figure><img src="https://2665493337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fh8bp6Jx5qkS4c0NEaWR1%2Fuploads%2FdzM8ySDG9DGOEycEcJSm%2FScreenshot_16.png?alt=media&#x26;token=af36da80-7ef5-485a-b7d0-3f4ca9179869" alt=""><figcaption></figcaption></figure>

### Render World UI

This render feature allows you to render the **World UI** and eliminates the problem where, when using the bloom effect, the elements on the world space canvas is somehow defined as a very shiny area, causing the elements to be unreadable.

<figure><img src="https://2665493337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fh8bp6Jx5qkS4c0NEaWR1%2Fuploads%2Fy0EjQpPDFHmzE5d92D3x%2FScreenshot_5.png?alt=media&#x26;token=adf2d6e4-e327-40ea-87b7-368656bea87b" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="https://2665493337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fh8bp6Jx5qkS4c0NEaWR1%2Fuploads%2FeSOzzlZ8UEU1mGjrKlKd%2FScreenshot_6.png?alt=media&#x26;token=3f309360-9267-4c16-bf3f-077e06289f3d" alt=""><figcaption></figcaption></figure>

### UHFPS Screen Effects

As the name indicates, the **UHFPS Screen Effects** feature is used to manage the basic screen effects of the kit that are displayed in certain situations. The main function of these effects is to perform full-screen blit allowing custom material to be displayed on screen. The basic effects of the kit are **Scanlines**, **Blood Disortion**, **Eye Blink**, **Fear Tentacles** or **Raindrop**.

<figure><img src="https://2665493337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fh8bp6Jx5qkS4c0NEaWR1%2Fuploads%2FFtpsm5jR2GBgGWKF7CXC%2FScreenshot_3.png?alt=media&#x26;token=c2934db4-61e0-4991-a67b-b198fa00d91b" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
You can write custom screen effects in a similar way to custom render features. However, instead of deriving from **ScriptableRendererFeature**, just derive from **EffectFeature**. This allows you to find and add new effects to the **UHFPS Screen Effects** feature.
{% endhint %}

{% hint style="info" %}
The **UHFPS Screen Effects** doesn't serve a new functionality to the URP, it's just a holder that gives a better overview of the kit effects that can be performed. Instead of having multiple **ScriptableObjects** added to the URP asset, it holds screen effects as classes.
{% endhint %}
