Version: Unity 6.0 (6000.0)
言語 : 日本語
シャドウカスケードのパフォーマンスに対する影響
影のトラブルシューティング

シャドウカスケードの実装に関する詳細

このページでは、シャドウカスケードの実装に関する技術面の詳細について説明します。

透視エイリアシング

ディレクショナルライトは一般に太陽光のシミュレーションとして使われ、ディレクショナルライト 1 灯でシーン全体を照らすことができます。このため、シャドウマップがシーンの大部分を覆い、透視エイリアシングと呼ばれる問題が生じることがあります。透視エイリアシングとは、カメラに近いシャドウマップのピクセルが、遠くにあるものよりも拡大されて「粗く」見える現象です。

カメラから距離のある影 (A) は適切な解像度で表示され、カメラに近い影 (B) には透視エイリアシングが発生する
カメラから距離のある影 (A) は適切な解像度で表示され、カメラに近い影 (B) には透視エイリアシングが発生する

透視エイリアシングが起こるのは、シャドウマップの各領域が、カメラの透視によって想定以上に拡大されてしまうためです。ライトによるシャドウマップは、カメラに映っている範囲だけに及んでいれば良く、その範囲はカメラの 視錐台 によって決まります。ディレクショナルライトが真上から当たるシンプルな状態を想像すると、錐台とシャドウマップの関係が分かりやすいでしょう。

この簡略化された例では、錐台の遠い方の端が 20 ピクセルのシャドウマップで覆われているのに対し、近い方の端は4 ピクセルだけで覆われています。しかし、画面上では両端が同じサイズで表示されます。その結果、カメラに近い影のエリアでは、マップの解像度が実質的に大幅に低下します。

シャドウカスケードの仕組み

Soft Shadows オプションを使用する場合や、シャドウマップに高い解像度を使用する場合は、透視エイリアシングは目立ちません。ただし、これらのソリューションでは、レンダリング中により多くのメモリと帯域幅を使用します。

シャドウカスケードを使用する場合、Unity はカメラからの距離に基づいて錐台領域を 2 つのゾーンに分割します。近い方の端のゾーンは、サイズを小さくした別のシャドウマップを使用します (解像度は同じ)。このような段階的なシャドウマップサイズの削減は カスケードシャドウマップ (「平行分割シャドウマップ」とも呼ばれます) として知られています。

シャドウカスケードのパフォーマンスに対する影響
影のトラブルシューティング
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961