LoginSignup
4
5

More than 1 year has passed since last update.

【Unity】軽量ブルームエフェクト作ってみた

Last updated at Posted at 2021-04-29

概要

本記事はモバイル向けな高速なブルームエフェクトを自作してみた記事になります。

環境

  • Unity2019.4.13f1
  • BuiltIn RenderPipeline

を使用しております。

自作ブルーム

今回作成したポストプロセスのブルームエフェクト。
MyPostProcessCandyRockStar.gif

工夫点

白飛び防止

ブルームをかけると強度によっては画面が白っぽくなりますが、
シェーダー側で色空間を調整することで白飛び防止できます。

ガンマからリニアへ
#if UNITY_COLORSPACE_GAMMA
    col.rgb = GammaToLinearSpace(col.rgb);
#endif

リニアからガンマへ
#if UNITY_COLORSPACE_GAMMA
    col.rgb = LinearToGamma(col.rgb);
#endif

なるべくドローコールを落とす。

アップサンプルの過程を省略してしまいました。これによってドローコールがダウンサンプルの回数分減らせます。
FrameDebugger.gif

処理負荷比較

5年くらい前のAndroid galaxy端末での処理負荷の比較です。
2021-04-29_23h47_13.png
平均10MSほど早くなっています。
それでいて見た目も本家と引けをとらないです!

プロジェクトデータ

Githubにサンプルをアップしました。

まとめ

白飛びしにくく、ドローコールも抑えめなブルームエフェクトを自作してみました。

ライセンス表記

本記事ではUnityChanのCandyRockStarを使用させていただいております。
© Unity Technologies Japan/UCL

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5