All notable changes to URP UI Blur will be documented in this file. Format follows Keep a Changelog.
ScriptableRendererFeature + ScriptableRenderPass architecture supporting
multiple simultaneous presets, each independently configured via a BlurPreset
ScriptableObject assetRTHandles.Alloc()), preventing cross-preset memory aliasing by
the RenderGraph allocatorUI_Blur_Universal shader for UI Image / Canvas panels — frosted glass tint,
brightness, desaturation, vignette edge darkening, and normal-map glass distortion;
three normal mapping modes: Standard Tile, Local Fixed Scale, Screen Space FixWorldObject shader for 3D world-space glass meshes — true IOR refraction via
refract() with normal map support; samples _BlurredBackground_WorldObjectsblurOffset,
gaussianRadius, radialRadius) scale with screen width relative to 1920 px
baseline; discrete parameters (iterations, taps, radialTaps) do not scalecullResults.visibleRenderers —
UI presets intentionally bypass culling to prevent one-frame pop-inBlurEditor and runtime
guard in AddRenderPasses (first preset wins, duplicates are skipped)SetPresetsActive(CanvasSpaceType, bool) static API for script-driven
enable/disable of preset groups at runtimeBlurSetupWizard Editor window — auto-opens on first import; scans all
UniversalRendererData assets in the project, adds the Blur Renderer Feature
via SerializedObject to keep m_RendererFeatureMap in sync, and auto-assigns
the bundled UI-Overlay.asset default presetBlurPreset ScriptableObject — per-method field visibility, algorithm info box
with performance cost indicator (dot scale), and renderer user list in InspectorBlurEditor (Renderer Feature), BlurScriptable (BlurPreset)UI_Blur_Universal.mat (UI panels), Blur_WorldSurface.mat
(3D world meshes) — pre-configured, no wizard generation needed_BlitTexture_TexelSize (source size) with _TargetTexelSize (destination size)
passed from C#; ensures both separable passes use the same texel step regardless
of source/destination resolution mismatchabs(i) >
radius guard; fixed by dividing by the actual sampled countComputeScreenPos + perspective divide in
UI_Blur_Universal.shader replaces the previous _ScreenParams-based UV
calculation that drifted at high resolutions_propReferenceHeight serialized property reference in BlurScriptable.cs_texPrefix (slot index + output texture name)