Backdrop Blur
Blur a camera image behind a UI panel
Overview
Backdrop Blur is an Image that displays a filtered camera capture through its sprite alpha. Procedural Shape can use the same capture system for its fill. It replaces Blur Overlay and Blur Overlay Manager.
Usage
Add Backdrop Blur to a UI rectangle and choose its sprite and tint.
Assign Source Camera, especially in multi-camera scenes. Otherwise it resolves the Canvas camera, then Main Camera.
Choose capture resolution, blur iterations, and radius.
For a procedural panel, enable blur on Procedural Shape instead.
Notes
Capture Cost
Lower resolution reduces GPU work and texture memory. Update Interval captures every N camera renders; larger values update less often. More iterations and larger blur settings produce a broader effect at a higher cost.
Appearance
Use Saturation, Brightness, and Noise to adjust the captured image.
Render Pipelines
The package includes Built-in, URP, and HDRP capture paths. The URP adapter enqueues its pass automatically, and the HDRP adapter registers transient Custom Passes. You do not need to create a Renderer Feature or a scene Custom Pass volume for these adapters.
Capture Limits
The capture contains the camera image. Screen Space Overlay UI is excluded, so it cannot blur another overlay panel behind it. Camera-space and world-space UI use a capture before transparents to avoid feedback. VR/XR not supported; the current adapters skip stereo cameras.
Public API
Use BackdropBlur in the Evo.UI namespace.
Properties
| Name | Type | Description |
|---|---|---|
IsReady | bool | Whether a usable capture is available. |
CaptureTexture | RenderTexture | Current capture texture, or null. |
ResolvedCamera | Camera | Camera selected by the settings. |
CaptureBeforeTransparents | bool | Whether this graphic uses an early capture. |
Fields
| Name | Type | Description |
|---|---|---|
settings | Settings | Capture and appearance configuration. |
Methods
| Name | Parameters | Description |
|---|---|---|
Refresh() | None | Applies settings and resolves or releases the capture. |
Settings
| Field | Description |
|---|---|
enabled | Enables the blur capture. |
sourceCamera | Explicit camera, or null for automatic resolution. |
resolution | Full, Half, Quarter, or Eighth. |
updateInterval | Number of camera renders between captures. |
iterations | Blur levels, from 1 to 5. |
radius | Kawase sample spacing, from 0.5 to 6. |
saturation | 0 for grayscale, 1 for unchanged saturation. |
brightness | Captured color multiplier; 1 preserves brightness. |
noise | Screen-space grain strength. |
Example
using UnityEngine;
using Evo.UI;
public class BackdropBlurExample : MonoBehaviour
{
[SerializeField] private BackdropBlur target;
private void Start()
{
target.settings.enabled = true;
target.settings.resolution = BackdropBlur.Resolution.Half;
target.settings.iterations = 2;
target.settings.radius = 3f;
target.Refresh();
}
}