先日仕事で残された課題として、UIまでブラーするのはどうするべきか…
一つ方法を思いついた
もう一つCanvasを作って、背景系のUI(つまりブラーしたいUI)をそこに移って、さらにそのCanvasの一番下では全画面をカバーするRaw Imageを作成する。
そして、元のメインカメラでレンダリングテスクチャに出力し、それをRaw Imageのテスクチャに設定する。
そこでもう一つカメラを作ってCanvasだけ映るようにする。
つまり、RenderPassがブラーするものを、背景Canvasだけにすること。
そして最後では背景CanvasのRender Cameraをメインカメラにセットする。で、メインカメラのCulling Maskは背景Canvasのレイヤー(ここで背景Canvasだけ新たにレイヤーを作成する)にする。
レンダリングテスクチャのAspect Ratioはスクリプトからじゃないと正方形になっちゃうので、そこらへんはスクリプトから生成するほうが良いだろうけど、作業には不便なので、Startだけ強引に修正させた。
これで一応、できたんですけど(ボタンまでブラーできる)
一応、実現は可能ですが…
ただ、うちのゲーミングPCですら重い…(対象デバイスはポンコツAndroidなので、重いのはダメなのだ…)
うん、ブラーするUIの量はそこまで多くないし、これに変えるとカメラ関連のスクリプトも修正しないといけない(とくにPrefabの生成はオブジェクトとScreenPosに合わせるものがあるので、それはわりと)。そもそも目的は視認性だけなので、ここまで時間と努力をかけるのはやはり間違っているよな
どうしても!と言われたらこの方法で実装するが、どう考えても限られた性能リソースを他の事に回すほうが良いかと思いますね…
他になにか簡単な良い方法ないかな…