[CEDEC#03]「Meltdown2004」開催! DirectX最新情報続々
2004/09/07 23:45
 Meltdown 2004はマイクロソフト主催のDirectX開発者のためのイベントだ。開発の鉄人と同様にCEDECと併催で行われ,今日はDirectXアプリケーション開発者の祭典となった。

■DirectXをめぐる最新テクノロジー事情

 Meltdown 2004では全部で四つのセッションが行われたが,ここでは最後のセッションを中心に解説していくことにしよう。ほかの三つはざっと流してみるだけにする。
 最初のセッションはWindowsでのゲーム作り一般の注意点で,とくにWindows XP SP2で変更されるファイアウォール機能とネットワーク接続に関する注意点やセキュリティ,互換性を確保するための基本事項が述べられた。「32ビット機と64ビット機でちゃんとテストしてください」といった注意や,とくにセキュリティに注意するように呼びかけていたことが印象的だった。
 2番めのセッションでは,ひたすらShaderModel 3.0という感じで,追加された機能を実際に使ううえでの注意などが中心。また,HLSL(マイクロソフトの高レベルシェーダー記述言語)でのアノテーションやセマンテックの統一についての解説もあり,ようやくシェーダー資産共用のための動きが出てきたかという感じ。
 3番めのセッションは,Direct3Dでのパフォーマンスチューニングについての解説。各種ツールを使ってのプロファイリングの重要性やパフォーマンス最適化のガイドラインなど,突っ込んだ解説が行われた。

■ライティングの新技術SHとPRT

 最後のセッションでは,まずライティングの新技術であるSphere Harmonic(球面調和)Pre-computed Radiance Transfer(事前計算ずみ放射輝度伝播)についての解説が行われた。どちらも,環境光をより自然に扱うための技術で,周りのあらゆる物体からの反射光をライティングに使用するための技術だ。
 SHは環境マッピングのようなもので,物体を囲む環境からの光をディフューズ光としてマッピングで反映させるもののようだ。空間内に適当な間隔で球を設定し,それを中心に環境面をレンダリングして貼り付けるものと思われる。実際にはあらゆる点で環境球を計算しないといけないのだが,途中の点では補間により処理を軽減している。比較的処理が軽いので,マイクロソフト的にはSHがイチオシのようだ。
 前計算を必要とするという意味でPRTは,かつてラジオシティ法と呼ばれたCG手法によく似ている。周りの面同士の光伝播をあらかじめ計算しておき,それを環境光とする。これは光源が加わったり物体が動いたりすると台無しになってしまうので,あくまでも限定的な使い方しかできないものだが,効果は自然で,SHとの組み合わせで使用することもできるという。Direct3DにはPRT演算APIも入っており,DXSDKをダウンロードすればサンプルも見ることができる。

 PRTに関する解説で,前計算する部分の理解がかなり間違っていたようなので訂正しておきたい。ただし,詳しく説明するとレンダリング方程式とか,数式満載になるのでざっと概念的に流してみる。
 最近のリアルタイムレンダリングの主な話題は,レンダリング方程式という1個の数式に集約される大域照明モデルをどう実装するかというところに集中している。これは物理的に正しい照明を定義した方程式で,ある頂点からカメラに向かう光の総量を定義したものだ。簡単に書くと,
  カメラに向かう光=自発光+周りからの光の反射の総和
で表される。簡単に「周りからの光」といっても内容は複雑で,まともにやるとリアルタイムではとても処理しきれないので,「発光体じゃないことにして自発光は0にしておこう」とか「反射はとりあえず考えないことにしよう」などとさまざまな簡約化が行われ,その条件に合った近似式を導入したり,さらに式を変形して,レンダリング時に変わらない部分を括り出し,その部分は前もって計算しておいてやろうということで,その前計算用に括り出された部分がPRTのPre-computedの部分に相当する。具体的には,Transferベクトル部分ということになるらしい。詳しい話は論文検索などで調べてほしい。


PRTとポリゴンテッセレーションのサンプル


■Longhorn時代の3D API:Windows Graphic Foundation

 さて,これまでのWindowsはGDIなどの旧式グラフィックAPIの上に構築されていて,ウィンドウの描画などはGDI,ゲームではDirectXという使い分けがされていたのだが,Windowsの次期バージョンLonghornではGDIを撤廃し,DirectXを根底に持ってくるデザインに変更される。あらゆるものがDirectX描画になるわけだ。DirectXの位置づけが変更されたことで,ドライバのパフォーマンスアップなどが期待される。
 現在のWhistlerからLonghornへの移行もゲーム業界にとっては一大事なわけだが,Longhorn上ではDirectXと並行して新しいグラフィックシステムWindows Graphics Foundation(WGF)が展開されていく。DirectXはLonghornの基礎として今後も続いていくのだが,これまでのDirect3D API部分がWGFとなってさらに発展していくというイメージでいいだろう。
 WGF1.0ではDirect3Dで現在あまり使われなくなっている頂点ライティングやαテストポイントスプライトなどの機能を取り除き,さらに不安定な現状のいわゆる固定機能部分をなくし,プログラマブル機能だけにシェイプアップしたうえで新たな機能を加えていくことになるという。




 新規に追加される機能としてはジオメトリシェーダストリーム出力などが挙げられ,パイプラインに追加される見込みだ。ポリゴン分割を行うテッセレーションエンジンなども予定されている。ジオメトリシェーダは,ポリゴン単位の処理ではなく,プリミティブ単位でさまざまな処理を行うユニットだ。
 WGFが動作するハードウェアについては将来開発されるビデオチップに依存する部分が多いので,現状のハードウェアにはあまり関係はない。とはいえ,2005年のLonghorn βに合わせてβ版が出てくる模様なので,そう遠い話でもない。β版SDKは2か月後とかいう話もあった。
 WGF 1.0以降は,Direct3Dで標準化の遅れていたマルチサンプルアンチエイリアスやスーパーサンプリングアンチエイリアスについての研究が予定されている。さらにGPUでの倍精度浮動小数点演算や高次元サーフェイスの直接サポート,自動リソース管理,共有サブルーチン,プログラマブルブレンダー,HLSL/エフェクトのアプリケーション統合などの話題が挙がっている。
 さらにそのあとには,レイトレーシングフォトンマップラジオシティなどの本格的CGアルゴリズムのリアルタイム実装やジオメトリモデリングの部分,物理演算やインバースキネマティクスなどのサポートも視野に入っているようだ。
 NVIDIAのKurt Akeleyによる2003年のレポートでは,リアルタイムグラフィックが十分に満足すべきものになるには,現状の36000倍の性能が必要だという。現状のGPU進化速度は年率2倍なので,「あと15年は食いっぱぐれない」とマイクロソフトグラフィックアーキテクトのDavid Blythe氏は笑っていた。とりあえず,年率2倍という速度でさえ恐ろしい進化の速さだ。そういったハードウェアにふさわしいソフトウェア環境としてWGFは今後リーダーシップを取っていくことになるだろう。いまはまだ縁のないものだが,いずれDirect3Dと同等にゲーマーの関心事の一つになってくることは間違いない。WGFというのが進められているらしいということくらいは頭の隅に置いておいてもらいたい。  (aueki)


こういう内訳で36000倍必要ということらしい



友達にメールで教えよう!

この記事へのリンクはこちら
http://www.4gamer.net/news/history/2004.09/20040907234534detail.html