遠方の凹凸は法線マップで、近いところの凹凸はディスプレースメントマッピングで…というのがジオメトリとピクセルを最適にバランスさせる理想的なLODなんでしょうけど、実際にはいうほど優しくないようです。
西川善司の3Dグラフィックス・マニアックス第39回
ジオメトリシェーダ(10)~ジオメトリシェーダを活用した新表現(6)
http://journal.mycom.co.jp/column/graphics/039/index.html
DirectX11でテッセレータが実装されますが、これで前述のようなジオメトリとピクセルを最適にバランスさせるLODシステムは実現されるのでしょうか。
実は、これは分かりません。
「そっちに進化する」という意見の人と、「これ以上さらにGPUが進化すると、別のレンダリングパラダイムへ移行するのではないか」という人がいるんですね。
DirectX11ではシェーダステージが頂点、ジオメトリ、ハル、ドメイン、ピクセルの5つがあり、とても複雑になります(テッセレータはドメインシェーダの子分みたいな固定ユニットになります)。
「もう、これ以上複雑になるならば、別のにしたほうがよくね?」という話です。
Unreal Engine3.0の設計者のEPIC GAMESのTIM SWEENEY氏は、この件についてCEDEC2008の講演で面白い予測をしています。
この中でTIM SWEENEY氏は「PIXARのREYESレンダリングモデルでいったらどうかな?」と提言しています。
詳しくはボクの書いたこの記事を参考にして欲しいのですが、
CEDEC 2008 - EPIC GAMESのTIM SWEENEYが語る「10年後のゲーム機の姿、ソフトウェアの形」(後編)
http://journal.mycom.co.jp/articles/2008/09/23/cedec02/index.html
具体的にはこんな感じのパイプラインです。
まず、シーンで取り扱う全ての3Dモデルを多ポリゴンで取り扱います。
そしてレンダリング時には3Dモデル側をレンダリング解像度のピクセル以下のマイクロポリゴンへと分解するのです。
これは、丁度、LOD(Level of Detail)システムに相当するのでゲームエンジン側でのLODシステムの実装がいらなくなります。
また、頂点シェーダ・ステージでのディスプレースメントマッピングや、ピクセルシェーダ・ステージの法線マッピングも不要になります。
ライティングとテクスチャリングはこの1ピクセル以下のマイクロポリゴンに対して行われることになります。
この仕組みだと、テクスチャは、その多ポリゴンの3Dモデルに対応したものを1枚用意しておくだけでMIPMAPは必要なくなるので、テクスチャマッピングの際のテクスチャフィルタリングによるボケやギザギザの心配も要らないのです。
まぁ、これをリアルタイム実装するには、今以上にGPUに膨大なメモリとメモリ帯域を要求するのですぐには無理でしょうけど..
.いずれは…??
Comments