CE2におけるD3D10活用

具体的にCE2でD3D10フィーチャーをどのように活用しているのか、といった情報も公開された。

D3D10対応は、エクスクルーシブな新世代グラフィックス実現のためというよりは、高品位化、高効率化のため、というのが実際のところらしい

D3D10で追加された第三のプログラマブルシェーダ「ジオメトリシェーダ」(シェーダそのものの機能についてはこちらの記事を参照のこと)はパーティクル生成システムや影生成のために利用されているという。パーティクル生成は"種"としたジオメトリ情報からジオメトリシェーダを用いて複数のジオメトリを生成し、パーティクル表現をより豊かにするような方向での活用と思われる。CE2の影生成技法は、シャドウマップ系をメインに活用しているので、ジオメトリシェーダはキューブマップベースのシャドウマップ生成である、全方位シャドウマップ(Omni-directional Shadow Maps)実現のための活用で使われているようだ。

D3D10では、ある1つのテクスチャに対し、各シェーダから任意のビューポートをもって参照できるが、CE2ではこの機能も積極利用されている。たとえば1つのテクスチャリソースに対し、異なるシェーダから用途のことなる活用を行ったりすることで、テクスチャメモリの有効利用などが図れる。

CE2の水面表現における波生成において、波動シミュレーションをテクスチャに対して行い、これを元に水面の頂点を変位させる「ディスプレースメントマッピング」のテクニックを利用して実践している。CE2では、D3D10環境では、この波動シミュレーション結果が格納されているテクスチャに対して、頂点シェーダがテクセルを読み出す際に、テクスチャフィルタ付きで行っているという。D3D9、SM3.0においてもNVIDIA系GPUに限り、頂点シェーダからのテクスチャ参照が行えたが、テクスチャフィルタは利用できなかった。D3D10、SM4.0ではすべてのシェーダから機能格差無くテクスチャ参照ができるので制約がないのだ。これにより、ジオメトリレベルでの、水面の波のアニメーションが、D3D9、SM3.0よりもなめらかになる。

この他、CE2では、浮動小数点テクスチャに対して透過的なMIP-MAPアクセスやフィルタリングができることにより、HDRレンダリングのポストプロセスの高効率化が行える(おそらく、HDRフレームから平均輝度を求める処理などが高品位化される)、深度値(Zバッファ)読み出しにフィルタリングが利用できること、ボリュームテクスチャのレンダリングが行えること…などを利用して、レンダリングの高効率化と高品位化を実現したとしている。

CE2におけるD3D10の活用