シャドウマッピング

シャドウマッピングとは



シャドウマッピング(またはシャドウプロジェクション)は、3次元コンピュータグラフィックスにおいて、物体が光を遮ることで生じるを表現する手法です。この技術は、1978年にランス・ウィリアムズによって発表された論文「Casting curved shadows on curved surfaces」で初めて導入され、以降、多くのゲームや映像制作で利用されています。

シャドウマッピングの原理



シャドウマッピングの基本的な考え方は、光源の位置から見たシーンの深度情報を利用することです。具体的には、以下の手順でを生成します。

1. 光源視点からのレンダリング: まず、光源の位置からシーンをレンダリングし、各ピクセルが光源からどれだけ離れているかという深度情報を記録します。この深度情報は、シャドウマップと呼ばれるテクスチャに保存されます。
2. 通常のレンダリングと深度比較: 次に、通常のカメラ視点からシーンをレンダリングする際に、各ピクセルの深度をシャドウマップの値と比較します。もし、ピクセルがシャドウマップの値よりも光源から遠ければ、そのピクセルの中にあると判断し、暗く描画します。

この手法は、シャドウボリューム法に比べて精度は劣るものの、高速に処理できるため、リアルタイム描画に適しています。また、追加のステンシルバッファを必要とせず、のエッジを柔らかくするなどの応用も可能です。ただし、シャドウマップの解像度に精度が依存するという制約があります。

アルゴリズムの詳細



シャドウマッピングは、大きく分けて2つのステップで構成されます。

1. シャドウマップの生成



まず、光源の位置からシーンをレンダリングします。光源が点光源の場合は、を描写する範囲に合わせた透視投を行い、平行光源の場合は、正投を使用します。このレンダリング結果から、深度バッファ(各ピクセルの深度情報)を抽出し、シャドウマップとして保存します。この際、色バッファの更新や照明計算は行わず、深度情報のみを記録することで、処理時間の短縮を図ることが一般的です。

シャドウマップは、光源やシーン内の物体に変化がある場合に更新が必要ですが、カメラ視点だけが動く場合は再利用できます。複数の光源がある場合は、各光源ごとに別々のシャドウマップが必要です。

シャドウマップの再描画時間を短縮するために、シーン内の一部のみをレンダリングしたり、Zファイティング(深度が近い場合に発生する描画のちらつき)を避けるために、物体を光源から遠ざける方向に深度オフセットを適用することもあります。また、物体の前面をカリングし、背面だけをシャドウマップにレンダリングすることで同様の効果を得ることもできます。

2. シーンのシェーディング



次に、通常のカメラ視点からシーンを描画します。各物体の座標を光源視点での座標に変換し、その座標に対応するシャドウマップ上の深度値と比較します。もし、描画対象のピクセルの深度がシャドウマップの値より大きければ、そのピクセルの中にあると判断し、暗く描画します。

リアルタイム実装の課題と解決策



リアルタイムシャドウマッピングの主な課題は、シャドウマップの解像度と深度によるの品質の制限です。シャドウマップの解像度が低いと、にエイリアシングや途切れが発生しやすくなります。単純にシャドウマップのサイズを大きくすれば品質は向上しますが、メモリ使用量や計算量が増加し、ハードウェアの制約を受ける可能性もあります。

この問題を解決するために、以下のような手法が用いられています。

カスケードシャドウマップ: 視点からの距離に応じて複数のシャドウマップを使い分けることで、遠景のの品質を維持しつつ、近景のの品質を向上させます。
台形シャドウマップ: シャドウマップの解像度を有効に活用するために、シャドウマップの形状を台形に歪ませることで、の品質を向上させます。
ライトスペースパースペクティブシャドウマップ: 光源の視点における遠近感を考慮してシャドウマップを生成することで、の品質を向上させます。
パラレルスプリットシャドウマップ: 視点からの距離に応じてシャドウマップを分割し、それぞれに異なる解像度を割り当てることで、効率的にの品質を向上させます。

また、生成されるのエッジが硬くなるという問題に対しては、以下のような手法で解決が試みられています。

Percentage Closer Filtering (PCF): シャドウマップの周囲の深度値を参照し、平均化することで、のエッジを柔らかくします。
Smoothies: シャドウマップをぼかすことで、のエッジを柔らかくします。
分散シャドウマップ: 深度値の平均だけでなく分散も利用することで、より自然なの表現を実現します。

関連項目



シャドウボリューム: を表現する別の手法
レイキャスト: レイトレーシングで使われる手法
フォトンマッピング: より現実的な照明レンダリングを実現する手法
* ラジオシティ: 間接光を考慮したレンダリング手法

シャドウマッピングは、3Dグラフィックスにおいてを表現するための重要な技術です。その原理と実装方法を理解することで、よりリアルで美しい映像表現が可能になります。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。