ディレクショナルライトは一般に太陽光のシミュレーションとして使われ、ライト1灯でシーン全体を照らすことができます。そうすると、1枚のシャドウマップでシーンの大部分を覆うことになる訳ですが、これによって、シャドウが「パースペクティブエイリアシング」という問題の影響を受けやすくなります。パースペクティブエイリアシングとは、カメラに近いシャドウマップのピクセルが、遠くにあるものよりも拡大されて「粗く」見える現象です。
パースペクティブエイリアシングは、ソフトシャドウを使いシャドウマップの解像度が高い場合には、目立ちにくくなります。しかし、これらの機能を使用するとグラフィックスハードウェアへの負担が大きくなるため、フレームレートに悪影響を及ぼす可能性があります。
パースペクティブエイリアシングが起こるのは、シャドウマップの各エリアが、カメラの視点によって不均衡に拡大されてしまうためです。ライトによるシャドウマップは、カメラに映っている範囲だけに及んでいれば良く、その範囲はカメラの 視錐台 によって決まります。ディレクショナルライトが真上から当たっているシンプルな状態を想像すれば、錐台とシャドウマップの関係が分かりやすいでしょう。
錐台の遠端は 20 ピクセル分のシャドウマップで覆われていますが、近端を覆うのは、たった 4 ピクセルです。ですが、画面上にはどちらも 同じサイズ で表示されます。結果的に、カメラに近いシャドウの範囲では、事実上、マップの解像度がかなり低い事になります。(実際には、解像度は 20x20 よりもずっと高く、マップは通常カメラ上で正方形にはなりません。)
すべてのマップを高解像度化すると、ある範囲が「粗く」みえる影響を減らす事ができますが、これは、メモリに使用率が上がり、レンダリング時の帯域幅のコストがより高くなります。しかし、図からわかるように、錐台の近端の部分は決して見えないため、シャドウマップの多くの部分が無駄になります。また、カメラから遠く離れたシャドウの解像度も高くなりすぎる傾向があります。錐台範囲は、カメラからの距離を基準にして分割することができます。カメラに近い領域では、縮小サイズ (ですが解像度は同じ) の別のシャドウマップを使用できます。ですから、ピクセル数は均一になります。
このように段階的にサイズを小さくしたシャドウマップは カスケード式シャドウマップ (cascaded shadow maps) または、平行分割シャドウマップ (Parallel Split Shadow Maps) と呼ばれます。画質設定 で、一定のクオリティレベルで 0、2、4 つのカスケードを設定できます。
カスケードを多く使えは使う程、パースペクティブエイリアシングがシャドウに与える影響は小さくなりますが、カスケード数を多くするとレンダリングのオーバーヘッドが発生します。ただし、このオーバーヘッドは、シャドウ全体に高解像度のマップを使用する場合よりはまだ少なくて済みます。
オブジェクトからの影は、オブジェクトがカメラから遠くにあると目だたなくなります。画面上に小さく表示され、しかも、遠くにあるオブジェクトは普通は注意をひかないからです。Unity では 画質設定 の Shadow Distance プロパティーで、この効果を利用できるようにしています。Shadow Distance プロパティーで指定した (カメラからの) 距離を超える位置のオブジェクトは全く影を作らず、また、この距離に近づくにつれ、オブジェクトの影は徐々にフェードアウトします。
shadow distance をできるだけ低く設定すると、遠くのオブジェクトをシャドウマップにレンダリングする必要が無くなるので、レンダリングのパフォーマンスを改善するのに役立ちます。それだけでなく、遠くの影が排除されたシーンの方が、見栄えが良くなる事が多いです。モバイルプラットホームでは、シャドウカスケードをサポートしていないので、shadow distance を正しく設定することが、パフォーマンスのために特に重要です。
シーンビューには、シーンのパーツを異なるカスケードレベルごとに色分けして表示する Shadow Cascades と呼ばれる 描画モード があります。これは、shadow distance 、cascade count それに cascade split ratios を調べるのに都合が良く、役に立ちます。
さらに、シャドウアクネを避けるために シャドウパンケーキ という技術を利用できます。照明方向に沿ってシャドウマップをレンダリングするときに、使用する照明空間の範囲を減らすという考えです。結果として、シャドウマップをより正確にし、シャドウアクネを削減します。
上のダイアグラムでは、
シャドウを投影するものを (頂点シェーダーの) 最適化された空間のニアクリップ面に固定します。一般的にこの方法は効果的ですが、そのニアクリップ面を横切るとても大きな三角に関しては、アーティファクトを発生することがあります。
この場合、青い三角の頂点の 1 つを最適化されたニアクリップ面の範囲内に置きます。ただし、ここうすると、三角の形状を変えるため、正しくないシャドウを作成してしまうことがあります。
画質設定 の Shadow Near Plane Offset プロパティー を微調整してこの問題を避けることができます。調整することにより、ニアクリップ面を後ろにずらします。ただし、これをとても高い値に設定すると、結果的にシャドウアクネが発生します。なぜなら、シャドウマップが照明方向に沿って処理する必要がある範囲が増加するからです。その他の方法として、問題がある投影の三角をテッセレーションすることもできます。詳しくは シャドウ の Bias セクションを参照してください。