UnityのURPのVolumeにHeightFogを追加する Unityで高さフォグを使おうと思ったがURPパッケージに入っていなかったので自分で作る。
使い方は、RenderFeatureとVolumeで設定すると使えるようになります。
こんな見た目になります。
Screenshot Github コードとサンプルはここに置いてあります。
https://github.com/jnhtt/height-fog-urp-volume
開発環境 以下のような環境で実装しました。
MacBook Pro (16インチ,2021) M1 Pro/32GB Unity2022.3.13f1 URP 14.0.9 技術的要素 高さフォグをVolumeに追加 RenderFeature/RenderPassの追加 高さフォグをVolumeに追加 高さフォグの制御のためのパラメーターはVolume経由で行うようにしたいと思うのでVolumeComponentを継承したクラスを作成します。
fogHeightMin/Maxの値は用途に合わせて調整してください。
パラメーター 意味 値の範囲 fogColor フォグの色 rgb fogHeightMin フォググラデの範囲の最小値、これより小さいとフォグ色で塗られる floatで[-200,300] fogHeightMax フォググラデの範囲の最大値、これより大きいとフォグはない floatで[-200,300] using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Rendering; namespace FingerTip.Volume { public class HeightFog : VolumeComponent { public ColorParameter fogColor = new ColorParameter(Color.white); public ClampedFloatParameter fogHeightMin = new ClampedFloatParameter(0, -200, 300); public ClampedFloatParameter fogHeightMax = new ClampedFloatParameter(0, -200, 300); public bool IsActive => fogHeightMin....