bevyengine / bevyengine/bevy

UI backdrop blur

Open
#24,411 4 comments 0 reactions 0 assignees View on GitHub
A-Rendering A-UI C-Feature D-Complex S-Needs-Design
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 22h
Merged PRs (30d)
161

Description

## What problem does this solve or what need does it fill?

Currently, blur effects are contained within specialized effects like bloom, depth of field, UI box shadow, motion blur, etc.. A specialized blur effect would be useful for blurring the full screen behind a pause menu, or frosted glass effects for UI elements.

Image

Users who wish to do this today would need to create custom solutions that may involve modifying existing post-processing modules or hooking into rendering internals.

## What solution would you like?

A backdrop blur module to be used by UI nodes in `bevy_ui_render` to blur the rendered content behind it, as well as facility to composite UI elements on top of a blurred scene (like GTA V's pause menu)

Ideally would use Dual Kawase blur since it's cheaper than Gaussian blur with similar results. ([great blur article here](https://blog.frost.kiwi/dual-kawase/)).

## What alternative(s) have you considered?

A more general blur which can be applied to non-UI elements. I think it's best to scope this to UI only to keep things simple for now.

Contributor guide

Open the contributing guide

Research direction

Start by reading the UI rendering code in `bevy_ui_render` and the linked Dual Kawase blur article. Define how a backdrop blur for UI nodes and compositing UI over the blurred scene should fit the existing rendering flow; the work is done when those pause-menu and frosted-glass use cases are supported within the UI scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
computer-graphics, game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.