【Unity】霧をスマホで表現する方法。GroundFogはスマホでは重いからポストプロセシング(Post-Processing)を使う

2023年9月15日

どうも、だらはです。
今回は、スマホで霧を表現する方法について紹介したいと思います。

スポンサーリンク

没案と採用案

先ずは、没案です。
当初は以下の方法により霧を表現していました。

  1. 「Unity Particle Pack」アセットの「GroundFog」
  2. 「Lighting」の「Fog」

PC環境ではこちらの方法で問題なかったのですが、スマホでは処理負荷が高く、運用に堪えませんでした。

スマホ環境では、特に①が処理負荷的に問題があることが分かったため、
代わりにポストプロセシングという手法にて霧を表現することにしました。
ポストプロセシングについては、こちらの記事を参考にさせて頂きました。

◆ポストプロセシング対応の手順

  1. [Window -> Package Manager]より[Post Processing]をインストール。
  2. [Post Processing]用のレイヤーを追加。
  3. メインカメラのレイヤーを、1で追加したレイヤーに変更。
  4. メインカメラの[Camera -> Rendering Path]Deferredに変更。
  5. メインカメラに[Post-process Layer]をアタッチ。
  6. [Post-process Layer]のLayerに、1で追加したレイヤーを設定。
  7. [Post-process Layer][DeferredFog -> Exclude Skybox]のチェックを外す。

以上です。

まとめ

いかがでしたでしょうか。
スマホ環境で霧を表現するには、以下の2つを実施することで処理負荷を抑えて霧を実装できました。

  1. ポストプロセシング
  2. 「Lighting」の「Fog」

以上、だらはでした。

追記(2023.0915)

モバイルでPost-processを利用すると処理負荷が劇的に重くなる見たいです。
対策として、CameraのRendering PathをDeferredからForwardにすると改善するかもしれません!
使い分けとして、処理負荷を取るならForward、品質を取るならDeferredみたいです。

スポンサーリンク

応用

Posted by daraha_gm