90年代の3Dゲームの影生成技法の主流だったのが、3Dキャラクタの足元に黒いマルを置くだけの簡易的な影、通称「丸影」だ。
1枚の板ポリゴンに丸い影テクスチャを貼り付けた物を足元に描くだけなので、負荷は非常に軽い。3D空間上におけるキャラクタ位置を立体的にプレイヤーに伝える……という程度の情報量はあるが、あらゆるキャラクタの影が同じ丸く描かれるだけなので、「影」としてのリアリティはほとんど無かった。
これを若干進化させたのが、「投射テクスチャマッピング」(Projected Texture Mapping)による疑似影生成だ。
これは、光源から見たキャラクタのシルエットをテクスチャにレンダリングし、これを光源位置から、映写機で投影するようにシーンにテクスチャマッピングすることで実現する。
投射テクスチャマッピングはほぼ全てのGPUでサポートされるため、互換性が高い。ただ、地面に丸い影を描くのではなく、そのキャラクタのシルエットをシーンに投射するので、あるキャラクタの影が、別のキャラクタに投射されるような相互投射影表現も実現できる。
影を出したいキャラクタのシルエットを毎フレームテクスチャに生成しなくてはならないが、視点から遠いキャラクタについては影生成を省略するといった手抜きをすれば、パフォーマンス的にスケーラブルな実装も可能だ。
この投射テクスチャマッピングを使った影生成は、原始的ではあるが、比較的最近の3Dゲームでもしばしば採用されることがある。プレイステーション2のタイトルなどはこの技法を採用した物が多いようだ。
「THE GOD FATHER THE GAME」(EA,2006)より。比較的最近のタイトルだが、投射テクスチャマッピングによる影生成技法が採用されていた。 |
投射テクスチャマッピング技法の問題
この手法の弱点は「セルフシャドウ」表現が行えないという点にある。
セルフシャドウとは、自分自身の部位の影が自身に投射されるような影表現のことだ。
例えば現実世界で、電灯の下に立って腕を前に突き出して見ると、その腕の影が自分の胸から腹にかけて投射されるはずだ。この、自分の腕の影が自身に体に投射されるような表現をセルフシャドウという。
投射テクスチャマッピングを使った影生成では、影の最小生成単位がキャラクタ単位となることから、セルフシャドウ表現が難しいのだ。
また、このシルエットテクスチャをどこに貼るのか(=影がどこに落ちるのか)の判定をきちんとしないと、あり得ないところに影が落ちて不自然に見えてしまうことがある。(続く)
(トライゼット西川善司)