現在は、影生成技法の主流になりつつあるデプスシャドウ技法だが、シャドウマップの解像度を十分に高くしないと、生成した影にジャギーが出やすいという弱点があることを前回でも指摘した。

研究が進むにつれて、この影のジャギーを消す様々なアイディアが発表されてきている。ここからは、このデプスシャドウ技法の改良形の代表的なものをいくつか紹介していきたいと思う。

デプスシャドウ技法の弱点を根本的に解決するには?

デプスシャドウ技法のジャギーの問題を、この技法の根本から改良することで低減していこうとするアイディアもいろいろと提案されており、そのいくつかは実際の3Dゲームタイトルにも活用され始めている。

デプスシャドウ技法のジャギーは、遮蔽分布を表すシャドウマップの解像度が足りないことが主な原因となっている。

例えば、前に解説したように100m×100mのシーンの遮蔽部分布を256×256テクセルのシャドウマップに生成したとすると、約40cm×40cmの遮蔽構造が1テクセルでまとめられてしまう。捉えようとする遮蔽構造の精度とその対象範囲のアンバランスから来るものだ。

一方、最新世代のDirectX 10/SM4.0対応GPUにおけるテクスチャの最大サイズは8192×8192テクセルもあるので、前出の100m×100mの例で行けば、この場合、1テクセルで約3cm×3cmの遮蔽構造を表せる。

しかし、視点から遠い箇所の遮蔽構造を3cm×3cmで取るのはやり過ぎだ。100m先の3cmの遮蔽構造は1ピクセルにもならない。光源からシャドウマップを生成する際のシャドウマップの解像度の使い方は、視点からシーンをレンダリングする際に必要とするシャドウマップ精度とはバランスがとれていないのだ。

デプスシャドウ技法の弱点は欲しいシャドウマップの解像度と生成されるシャドウマップの解像度のアンバランスさから生まれている

であれば、このアンバランスな関係を解消してやればよいのではないか。

こうした発想から様々なデプスシャドウ技法の改良版が提唱されてきている。

パースペクティブシャドウマップ技法~デプスシャドウ技法の改良版その第1形態

その1つが、2002年、ドイツのエアランゲン・ニュルンベルグ大学(University of Erlangen-Nuremberg)のMarc Stamminger氏らがSIGGRAPH 2002で発表した「パースペクティブシャドウマップ技法」(PSM:Perspective Shadow Maps)だ。

デプスシャドウ技法による影のジャギーは、遮蔽構造の取り方がどうしても荒くなってしまう視点近くの領域に目立つ。そこで「視点に近い位置のシャドウマップを高解像度で生成し、遠くに行くに従ってそれなりの解像度で処理する」という発想でシャドウマップの生成をすればよいのではないか。

このシャドウマップ生成の際の、特殊なバイアスのかけ方として「視界からの座標系に配慮して生成しよう」というアイディアを取り入れたのがPSM技法なのだ。

具体的には、シャドウマップを、透視投影変換(Perspective Projection)して生成すればいい。もちろん「パースペクティブ・シャドウマップ技法」の"Perspective"はここから来ている。

これで都合よく、近い位置のシャドウマップは高解像度になり、奥に行くに従ってそれなりの解像度になる。これで生成される影のクオリティが視点からの距離に左右されることは改善されるわけだ。

PSM技法の概念図

このパースペクティブ・シャドウマップ技法は、業界標準のベンチマークソフト「3DMark05」(Futuremark,2004)に採用されたことで注目された。(続く)

(トライゼット西川善司)