【CEDEC 2003レポート】meltdown 開催 - DirectXの今後について(2)

      [2003/09/09]

    ○プログラマブルシェーダ3.0モデルはすでにDirectX9.0にある

    年末に発売される予定の3Dゲーム「FAR CRY」は、DirectX9テクノロジーに積極的に対応したタイトルとして注目されている。ちなみに、この画面はキャラクタ、影も含めて全てリアルタイム描画されている。(C)Ubi Soft

    GeForce FXシリーズ、RADEON 9500以上などに代表されるグラフィックスチップ(GPU)は、プログラマブルシェーダ2.0(あるいは2.0+)に対応したプログラマブルシェーダ機能を持っているのは多くの読者が知っていると思う。

    DirectX 9にてプログラマブルシェーダ2.0が世に出てから約1年が過ぎたわけだが、OpenGLが1.5になり、来年中には2.0の仕様も確定する見通しであることを考えると、次のプログラマブルシェーダ3.0がどのような形でサポートされるのかが気になってくることだろう。

    実はプログラマブルシェーダ3.0モデルはすでに現行のDirectX 9から既にサポートされているため、前回のレポートで報じたようにDirectXのバージョン番号更新も今年及び来年はない。

    念のために整理すると、現行のDirectX 9は、プログラマブルシェーダバージョン1.x/2.0/2.x/3.0といったバージョンをサポートしている。2.xはGeForce FXシリーズに代表される"2.0+"への対応を意味する。プログラマブルシェーダ3.0対応のGPUは現存しないが、シェーダモデルの設計自体は2.0と並行して行われていたこともあり、すでにDirectX 9にてサポートはされているのだ。なお、3.0対応GPUハードウェアは、NVIDIAやATIから、早ければ2003年末、遅くとも2004年中に発表される見込みだ。

    マイクロソフトとしては、プログラマブルシェーダテクノロジーの一般ユーザ、開発者双方への浸透、そして次期Windows"Longhorn"がDirectX 9をカーネル統合していることを配慮し、DirectXバージョンの不用意な更新は避けたようだ。よくよく考えてみると、DirectX 8時代もDirectX 8.0(2000年)、8.1(2001年)と2年間続いている。同一DirectXバージョンが2年越しで続くことは今回が初めてではない。

    現在の3Dゲームグラフィックスが、やっとDirectX 8ベースになってきたタイムラグを考えれば、もう少しDirectX 9時代が続いたとしても誰も困らない。

    ○プログラマブル頂点シェーダ3.0 - 頂点シェーダでテクスチャが扱えるようになる

    頂点シェーダモデルの比較

    プログラマブル頂点シェーダ(VS)3.0の仕様は図のようになる。一時レジスタの数が32に増え、プログラム長(命令数)も512命令に拡張されているのが目に付くが、最もトピックになるのが、「頂点シェーダからテクスチャへのアクセスが可能になる」という点だ。仕様表において「テクスチャサンプラ」がVS2.0の0に対し、VS3.0では4となっているのがその証だ。

    「頂点シェーダでテクスチャ」というのはイメージしにくいかもしれないが、ボーン制御用の行列の格納領域に使うというのが主な活用目的となりそうだ。現行GPUでは、GPU内の定数メモリに格納する方法をとってきたが、これではボーン数が増えてきたときに対応が難しい。頂点シェーダ3.0では実質的にはこうした制限が取り払われることになる。

     頂点シェーダ2.0モデル
     頂点シェーダ3.0モデル

    また、テクスチャに格納されたデータを読み出し、これで頂点を変位させればディスプレースメントマッピングも可能になる(ポリゴン分割ユニットであるテッセレータがなくても基本的なことは可能)。4段階の従属テクスチャ読み出しが可能なので、かなり複雑なインタラクティビティを持った頂点変位処理もできることになる。

    この他、VS3.0では動的条件分岐、動的ループ制御も可能になり、より高度な構造的プログラミングが可能となる。

    ○プログラマブルピクセルシェーダ3.0

     ピクセルシェーダモデルの比較

    プログラマブルピクセルシェーダ(PS)3.0の仕様は図のようになる。細かい仕様制限の撤廃が行われているのが分かるが、特に目を惹くのが浮動小数点(FP)定数の数とプログラム長が大幅に拡大されている点だろう。前回のレポートで報じたように新DirectX 9ではFP16サーフェースフォーマットの仕様制限が大幅に撤廃され、通常のαRGB各8ビットの32ビット整数カラーサーフェースとほぼ同等に使えるようになった。

    こうした一連のFPへのサポート強化は、これまで以上にテクスチャやレンダーターゲットとしてFPバッファが活用されることを想定しての対応ということだ。最初からなぜこれができなかったかというと、それはGPUの製造プロセスルールに起因している。簡単に言えば、去年主流だった130nmや150nmといったプロセスルールでは、FPサーフェースをまともに扱えるようにするための機能を実装するためにはトランジスタ数が足りなかったということだ。90nm時代に突入するこれからはGPU内に2億トランジスタを実装することも現実味を帯びており、FP関連の機能強化がついに可能になってきたのだ。

     ピクセルシェーダモデル2.0
     ピクセルシェーダモデル3.0

    この他、PS3.0では頂点シェーダと同等の動的分岐、テクスチャ参照命令に重心サンプリング技法がサポートされる。重心サンプリングとは、簡単に言えばテクセル読み出しのさいにオフセット指定ができる仕組みだと考えればよい。

    VSとPSとの関係を表したブロック図。面の向きと画面座標の取得する仕組みは、OpenGL Shading Languageにおいてもサポートされている

    また、今回のCEDECでは詳しい説明はなかったが、図のようにPS3.0ではトライアングルセットアップエンジンより、その面の向き、画面上のXY座標といったパラメータの取得も可能になる。

    ○DirectX 10以降のグラフィックス - リアルタイムMPEGエンコードをプログラマブルシェーダで!?

    NVIDIA全面支援の元に開発が進められている「S.T.A.L.K.E.R.Oblivion Lost」より。空から光がにじみ出るHDR表現は今は擬似的なものだが、将来的には全てのレンダリング処理が浮動小数点次元で行われるようになるかもしれない(C)GSC GameWorld

    「仕様的に確約できるものではない」(Chas.Boyd氏)としながらも、今回のCEDECではDirectX 9から先、すなわちDirectX 10以降のPC-3Dグラフィクスの進化の方向性についても語られた。

    プログラマブルシェーダは今後もバージョンアップが重ねられ、プログラマブルシェーダ4.0では、シェーダー命令セット、すなわちプログラマビリティの自由度の観点では、頂点シェーダ、ピクセルシェーダを同列にすることを計画している。なお、VSとPSは処理するものが異なるので同一シェーダがVSとPSで走るという意味ではない。

    また、プログラマブルシェーダ4.0では、PSが、レンダリングしたフレームバッファへのアクセスできる仕組みを導入したいとした。現在のGPU仕様ではレンダリング完了したフレームバッファからの読み出しには対応していない。しかし、これが可能になるとαブレンディング等の処理系にも高度なプログラマビリティが生まれるばかりか、フレームバッファを汎用のメモリ同様に使えることになり、結果、GPUがプログラマブル可能な高性能汎用DSPとして活用できる可能性が切り開かれる。

    グラフィックス系ならばラジオシティ(相互反射)処理、グラフィックスに限定しなければ、MPEGのリアルタイムエンコード処理なども可能になってくる。夢のような話だが、実際、筆者も各GPUベンダーの複数の設計担当から「GPUはいずれグラフィックス以外のことをやらせることもできるようになる」という話を聞いているので、マイクロソフト側のDirectXの展望はただの大風呂敷ではない。

    そして、現在は、高次曲面についてNURBSやベジェ曲面のまま実装するか、PATCH(ポリゴン分割)で実装していくのか、どちらがリアルタイム3Dグラフィックスに適しているかという問題については最適解が出てきていない。新世代DirectXではこの議論ついてもいずれは明確な指針を定めていきたいとした。

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

    【CEDEC 2003レポート】meltdown 開催 - DirectXの今後について
    http://pcweb.mycom.co.jp/news/2003/09/05/22.html

    【CEDEC 2003レポート】将棋・囲碁などに必勝法は存在するか - 人を楽しませる人工知能の実現は?
    http://pcweb.mycom.co.jp/news/2003/09/05/09.html

    CEDEC 2003
    http://cedec.cesa.or.jp/

    コンピュ-タエンタ-テインメント協会(CESA)
    http://www.cesa.or.jp/

    マイクロソフト
    http://www.microsoft.com/japan/

    meltdown
    http://cedec.cesa.or.jp/session/meltdown.html

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン