4 / 4 影の距離と解像度の比較
必要な見え方を基準に、影の設定を選びます。
距離と細かさを分ける
先にShadow Distanceを変え、どの距離で影が消えるか確認します。Cameraを動かした距離も記録します。距離を戻してから、同じCameraで解像度だけを比較します。
Shadow Resolution
Shadow Map はテクスチャーなので、解像度が足りないと影の輪郭がギザギザになります。
解像度を上げると影は細かくなりますが、 メモリ使用量と描画負荷も上がります。
影をきれいにしたいときは、ただ解像度を上げるだけでなくライトの範囲、Shadow Distance、カメラ距離も見直します。
広い範囲を1枚の Shadow Map に詰め込むほど、 1ピクセルあたりの影の精度は下がります。
Shadow Distance
Shadow Distance は、カメラからどの距離まで影を描くかを決める設定です。
遠くまで影を描くほど、Shadow Map の限られた解像度を広い範囲に使うことになります。
そのため Shadow Distance が長すぎると、 近くの影まで粗く見えることがあります。
ゲームでは、遠くの影を省略したり、 距離に応じて品質を変えたりして負荷と見た目を調整します。
ハードシャドウとソフトシャドウ


ハードシャドウとソフトシャドウの比較。
Hard Shadow は輪郭がくっきりした影 Soft Shadow は輪郭をぼかした影です。
Shadow Map は「影か、影ではないか」の二値判定のため、通常は硬い影になります。
Shadow Map を複数回サンプリングして周囲の結果を平均し、影の輪郭を柔らかくするのが Soft Shadow の一般的な実現方法です。
サンプル数を増やすほど滑らかになりますが、 その分描画負荷も高くなります。
実習3:Shadow DistanceとResolutionを比較する
- カメラの近くと遠くにオブジェクトを配置する
- Shadow Distance を短くして、遠くの影が消えることを確認する
- Shadow Distance を長くして、近くの影の精度が変わるか確認する
- Shadow Resolution を変更して、輪郭のギザギザを比較する
- 見た目と負荷のバランスを考える
条件を変えた確認
遠くの影が消える問題と、近くの影の輪郭が粗い問題について、最初に確認する設定を選び、比較画像と理由を提出します。
予測と結果の照合
距離で消える場合はShadow Distanceと対象距離、輪郭が粗い場合は影の解像度や割り当て範囲を確認します。解像度を上げればすべて解決するとは限りません。
変更前と採用した値を残し、Cameraを元へ戻します。
発展:切り抜きの影
Alpha Clipを影へ反映する
葉っぱやフェンスのようなマテリアルでは、 四角いポリゴン全体ではなく、アルファで切り抜いた形の影が必要です。
Alpha Clip を使うと、一定以下のアルファを描画しないため、 影用の描画でも切り抜き形状に近い影を作れます。
しきい値が高すぎると影が欠けたり細くなったりし、 低すぎると本来透明にしたい部分まで影が残ります。
第04回で扱った透明表現は、影の見え方にも関係します。
実習4:Alpha Clipの影を確認する
- 葉っぱやフェンスのようなアルファ付きテクスチャーを用意する
- Shader Graph で Alpha Clip を有効にする
- しきい値をプロパティ化する
- 表示される形と影の形が一致するか確認する
- しきい値を変えて、見た目と影がどう変わるか観察する
参考:影の範囲分割
Cascade Shadow



カスケードシャドウの設定パネルと表示例です。広い範囲を一枚のシャドウマップで扱う場合と、範囲を分ける場合の細かさを比較します。
1枚の Shadow Map だけでは広範囲の影をフォローしきれず、近くの影が粗くなります。
Cascade Shadow はカメラからの距離に応じて複数の Shadow Map を使い分ける方法です。
近くは高精度、遠くは低精度にすることで見た目と負荷のバランスを取りやすくなります。
ただしカスケードの境界が見えることもあるため、分割数や距離の調整が必要になります。
- 距離と解像度を一度に変更せず比較した。
- 採用値と残る不具合を説明できる。