They asked me "Make a choice between performance or quality". I decided to choose both.
| NEW PRICE LIVE: Now, more accessible than ever!
FEATURES
──────────
Features, Features, a lot of Features!
✔ ~0% PERFORMANCE LOSS STATIC MODE
Very high performance ~0% fps loss blur mode
Use for UI elements that do not change frequently: Pause menu, Character menu, Main menu, Inventory, Popups, choices are limitless.
Unless the game is active and moving in the background and the motions needs to be visible too, use static mode.
Static mode limits performance impact to maximum 1 frame stutter even with heavy blur. Even 100 iterations gaussian is possible with this without continuous fps loss.
✔ MULTI BLURS
Three blurring options! Use any. Choose smooth or grainy, glassy or blocky
Check screenshots for comparison
✔ MULTI-PASS BLURS
More iterations = More blur
Set iterations count in Render Feature(Global) or Render Blur Controller(Scene)
✔ FULLY CUSTOMIZABLE POST PROCESSING FX PIPELINE
Stack, reorder, mix effects to create stunning visuals
Enable post processing in Render Feature(Global) or Render Blur Controller(Scene) to enable effects pipeline.
Effects can be added, reordered or mixed to customize visuals.
Effects can be applied pre blur or post blur as needed.
Effects available:
Use any combination of effects to get the visuals you need.
Hint: Lens + Chromatic Aberration + Saturation creates a really good looking distorted glass effect.
Check screenshots or video for reference
✔ ADVANCED GLASS BLUR FX
Liquid or frosted or even rippled, you name it, we have it!
Use RenderBlurCanvasAdvanced (Material) to unlock Advanced Glass Efffects
Glass Type: Select your preffered glass.
Glass Strength: Set strength of Glass FX.
Distortion Scale: Set scale of Glass FX.
A refracting or solid color outline can also be added for glass edge
Outline Width: Set width of outline.
Outline Color: Set color of outline.
Glassy: Enable outline refraction.
Distort Amount: Set outline refraction amount.
Check screenshots or video for reference
✔ RESOLUTION SCALING
Set resolution of blur as you prefer
You can set Render Scale in Render Feature(Global) to reduce memory usage or increase performance even further beyond.
✔ PER-SCENE & PER-COMPONENT BLUR CONTROL
Different situations, different blurs
Apply scene specific blur - Main menu can have smooth blur while pause menu can have glassy blur.
Apply gameobject specific blur - Two render blur controller, one active at a one time. Inventory can have static blur while weapons tween can have continuous blur.
Apply in Render Feature(Global) or Render Blur Controller(Scene)
✔ SELECTIVE GLASSY BLURS
Some extremes create good art
Create simple blurry glass effects with or without Advanced Materials.
Tweak values at high radius and low iterations count to produce really good looking glassy blur effects. Radius values above 15 will tend more towards glassy effects.
Check screenshots for reference
✔ EXTENSIBLE
This is just a start
Use _RenderBlur global variable and connect with your shader graph.
COMPATIBILITY
────────────
Requirement: URP Render Graph
Built for: Latest Unity - Unity 6.0+ (Unity 6.0, Unity 6.3, Unity 6.4, Unity 6.5, etc)
USAGE
───────
Check screenshots or read below
Note: Render Graph is a requirement and it is turned on by default on Unity 6+.
SUPPORT
──────────
Contact me in mail or gitlab issues if you need help with anything or need new features
Issue Tracker: https://gitlab.com/Antiquete/renderblur
E-Mail: antiquete@protonmail.com
FAQ & TECHNICAL
────────────────
More blurs?
Yes, possible, tell which ones.
Number of passes for multi pass blur?
Right now, the max number of passes is 100, since I thought those were sufficient but I will increase it if people want more. Message me if thats needed or increase the range yourself in render feature script. For reference, at iterations >30, the blur is already so heavy that background details are mostly only colors.
Why is RenderBlurController needed?
Render Blur Controller is needed for blur to activate. This is intentional and a performance optimization.
Simply speaking, controller active = blur active, controller inactive = blur inactive
So for eg. say you have a pause menu that selectively activates and requires blur then put controller on it too to save performance.
How to use in custom shader graph?
Use _RenderBlur global variable, it will contain the output of RenderBlurRenderFeature.
How to use with Camera Space or World Space UI?
Move UI using RenderBlur to another layer, create a new renderer data and set it to render ui layer only.
More effects in advanced materials?
Yes, possible, tell which ones.
CREDITS
──────────
Dual Kawase: I mainly adapted baedrick's algorithm adaptation for Unity 6 render graph.