https://github.com/mob-sakai/StaticBluredScreen
Non-realtime (=static) screen blur for Unity. Easy to use background for dialogs.
https://github.com/mob-sakai/StaticBluredScreen
background blur effects shader ugui ui unity unity3d
Last synced: about 1 month ago
JSON representation
Non-realtime (=static) screen blur for Unity. Easy to use background for dialogs.
- Host: GitHub
- URL: https://github.com/mob-sakai/StaticBluredScreen
- Owner: mob-sakai
- License: mit
- Created: 2017-12-11T02:57:53.000Z (over 7 years ago)
- Default Branch: develop
- Last Pushed: 2019-01-03T11:17:11.000Z (over 6 years ago)
- Last Synced: 2025-04-05T13:51:19.034Z (2 months ago)
- Topics: background, blur, effects, shader, ugui, ui, unity, unity3d
- Language: C#
- Homepage:
- Size: 240 KB
- Stars: 194
- Watchers: 14
- Forks: 30
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-opensource-unity - StaticBluredScreen - Non-realtime (=static) screen blur for Unity. Easy to use background for dialogs. (Open Source Packages / 2D)
- awesome-unity3d - StaticBluredScreen - Non-realtime (=static) screen blur for Unity. Easy to use background for dialogs (Open Source Repositories / 2D)
- awesome-unity-open-source-on-github - StaticBluredScreen - Non-realtime screen blur (UI Shader)
- awesome-unity3d - StaticBluredScreen - Non-realtime (=static) screen blur for Unity. Easy to use background for dialogs (Open Source Repositories / 2D)
- awesome-unity3d - StaticBluredScreen - Non-realtime (=static) screen blur for Unity. Easy to use background for dialogs (Open Source Repositories / 2D)
README
StaticBluredScreen
===### NOTE: This project has been integrated into [UIEffect](https://github.com/mob-sakai/UIEffect), so we are NOT continuing development in this repository.
[](https://github.com/mob-sakai/StaticBluredScreen/releases)
[](https://github.com/mob-sakai/StaticBluredScreen/releases)

[](https://github.com/mob-sakai/StaticBluredScreen/blob/master/LICENSE.txt)
[](https://github.com/mob-sakai/StaticBluredScreen/commits/develop)
[](https://github.com/mob-sakai/StaticBluredScreen/issues)<< [Description](#Description) | [WebGL Demo](#demo) | [Download](https://github.com/mob-sakai/StaticBluredScreen/releases) | [Usage](#usage) | [Change log](https://github.com/mob-sakai/StaticBluredScreen/blob/develop/CHANGELOG.md) >>
## Overview

静的なブラースクリーンを表示します.
ポストエフェクト等によるリアルタイムブラーとは異なり、ある時点でのレンダリング結果に対するブラーのみを提供します.1. ブラー処理用のCameraが不要です.
2. ブラーは常時実行されません. テクスチャ更新を実行したあと1度だけ実行されます.
3. 縮小バッファを利用することで、メモリサイズを小さく抑えます.
4. スクリーン | ブラー | ダイアログ1 | ブラー | ダイアログ2 ... のように、重ねて表示できます.
5. 激しい動きのあるオブジェクトがスクリーン上にある場合、ブラーテクスチャにズレが発生し得ます.
## How To Work?
カメラに対し以下のコマンドバッファを1フレームだけ割り当てています.
縮小バッファを利用してブラーを適用し、出力先RTにコピーしているだけです.
その後、出力先RTをRawImage等で表示させると、ブラーが画面に適用されているように見えます.
ブラーが適用されるのはあくまで縮小バッファであり、レンダリング負荷がほとんどかからないことに注意してください.```cs
// テンポラリRTに対するIDを生成.
int copyId = Shader.PropertyToID("_ScreenCopy");
int blurId = Shader.PropertyToID("_StaticBlur");// ブラーシェーダを割り当てたマテリアルを生成.
Material materialBlur = new Material(shaderBlur);// 出力先RTを生成.
RenderTexture rt = new RenderTexture(w, h);// カメラのレンダリング結果をRTにコピー.
buffer = new CommandBuffer();
buffer.GetTemporaryRT(copyId, -1, -1, 0, FilterMode.Bilinear);
buffer.Blit(BuiltinRenderTextureType.CurrentActive, copyId);// 縮小バッファを利用して、ブラーシェーダを適用.
buffer.GetTemporaryRT(blurId, w/4, h/4, 0, FilterMode.Bilinear);
buffer.Blit(copyId, blurId, materialBlur);// 縮小バッファから出力先RTにコピー.
buffer.Blit(blurId, rtId);// テンポラリRTを解放.
buffer.ReleaseTemporaryRT(blurId);
buffer.ReleaseTemporaryRT(copyId);// コマンドバッファをカメラに追加.
_camera.AddCommandBuffer(CameraEvent.AfterImageEffects, buffer);
```## Requirement
* Unity5.5+ *(included Unity 2017.x)*
* No other SDK## Usage
1. Download [StaticBluredScreen.unitypackage](https://github.com/mob-sakai/StaticBluredScreen/raw/master/StaticBluredScreen.unitypackage) and install to your project.
1. Attach `StaticBluredScreen` component to GameObject.
1. In playmode, call `StaticBluredScreen.UpdateTexture`.
1. Enjoy!
## Demo
[demo](https://developer.cloud.unity3d.com/share/-kw9dNzDxX/webgl/)
ダイアログを開くタイミングで静的なスクリーンブラーを生成し、アニメーションでフェードイン/アウトするデモです.
シーン内にカメラは1つしかありません.
ダイアログが2つ重なったとき、更にブラーを生成しています.## License
MIT
© UTJ/UCL## Author
[mob-sakai](https://github.com/mob-sakai)
## See Also
* GitHub Page : https://github.com/mob-sakai/StaticBluredScreen
* Issue tracker : https://github.com/mob-sakai/StaticBluredScreen/issues