Universal Render Pipeline AssetのShadowsの項目について調べたことをメモしておきます。
※この記事ではShadow cascades(カスケードシャドウ)やShadow acne(シャドウアクネ)については詳しくは説明しません。
環境
Unity 2021.2.3f1
Universal RP 12.1.1
設定項目
Max Distance
影を描画するカメラからの距離を設定します。この値より遠い場所では影を描画しません。
単位はメートルです(Unityは1単位1メートルで定めているようです)。
Shadow cascadesの設定
Directional Lightにのみ適用されるShadow cascadesの設定項目です。
簡単に言うと、距離別に詳細度の異なる影を描画する処理の設定です。
Working Unit
Shadow cascadesにおいて そのレベル毎の閾値を「メートル」か「MaxDistanceに対する割合(パーセント)」のどちらで設定するかを選択します。
Cascade Count
Shadow cascadesを何段階にするかを設定します。1から4の間で設定できます。
SplitとLast Boarder
Shadow cascadesの詳細度を、どの程度の距離で分割するかを設定しますs。
下の色で領域分割されている設定の方はそのレベルの領域範囲の値で、 上のスライドバーはそこまでの合計値で表記されているので、そこの差がちょっと分かりにくいかもしれません。
Lastboarderは最後のSplitからMaxDistanceまでの間で影がフェードアウトする開始地点を設定します。 Lastboarderだけ設定の基準が異なる点に注意する必要があります。
例えば、上図のパーセント表示におけるLast Boarderのスライダーの79.9999は3の領域における80%を占めていることを指しています。 下の色分けの領域の方では40.0%という表記ですが、これは全体に対する値で、3の領域が全体の50%を占めていて、その内の80%であることによります。
Shadow acne対策用設定
シャドウのトラブルシューティング - Unity マニュアル
Shadow acneという変な影の模様が出るのを防ぐためのバイアスの設定です。
Depth Bias
シャドウマップの深度に対してバイアスをかける量を設定します。 値を大きくしすぎると影が物体から離れてしまうピーターパン現象が発生します。
Normal Bias
シャドウマップのピクセルの法線方向に対するバイアスをかける量を設定します。 法線方向へピクセルをずらすので、値を大きくし過ぎると影が変形してしまいます。
それぞれのバイアスを変化させた際のシャドウマップの変化をFrame Debuggerで確認してみました。
Soft Shadows
影に対してぼかしをかけて柔らかい感じの表現にするかを設定します。 ドキュメント曰く、パフォーマンスにそこそこ影響が出るみたいです(ぼかすためにフィルターをかけるので、確かに重たそうではあります)。
参考
ライトマップの基礎知識 #1 : リアルタイムライト | Unite Now 2020 - YouTube