概要
本記事はモバイル向けな高速なブルームエフェクトを自作してみた記事になります。
環境
- Unity2019.4.13f1
- BuiltIn RenderPipeline
を使用しております。
自作ブルーム
工夫点
白飛び防止
ブルームをかけると強度によっては画面が白っぽくなりますが、
シェーダー側で色空間を調整することで白飛び防止できます。
ガンマからリニアへ
#if UNITY_COLORSPACE_GAMMA
col.rgb = GammaToLinearSpace(col.rgb);
#endif
リニアからガンマへ
#if UNITY_COLORSPACE_GAMMA
col.rgb = LinearToGamma(col.rgb);
#endif
なるべくドローコールを落とす。
アップサンプルの過程を省略してしまいました。これによってドローコールがダウンサンプルの回数分減らせます。
処理負荷比較
5年くらい前のAndroid galaxy端末での処理負荷の比較です。
平均10MSほど早くなっています。
それでいて見た目も本家と引けをとらないです!
プロジェクトデータ
Githubにサンプルをアップしました。
まとめ
白飛びしにくく、ドローコールも抑えめなブルームエフェクトを自作してみました。
ライセンス表記
本記事ではUnityChanのCandyRockStarを使用させていただいております。
© Unity Technologies Japan/UCL