【Watch記事検索】
最新ニュース
【11月30日】
【11月29日】
【11月28日】
【11月27日】
【11月26日】
【Game Developers Conference 2004】レポート

NVIDIA、次期GeForce(NV40)にて
プログラマブルシェーダー3.0の実動デモを公開

3月25日(現地時間) 開催

GDC展示会場のNVIDIAブースは新ネタ無し。NV40の影も形もなし
 NVIDIAはGDC 2004にて、3Dゲームの新しいグラフィックス表現となりうる実験的な3Dグラフィックス技術を同社のスポンサード・セッションにて提示した。また、はじめて一般向けに同社の次期主力GPU製品NV40(開発コードネーム)を使ったデモンストレーションを行なった。

■ NVIDIA、無料の3Dグラフィックス実験ソフト「FX COMPOSER」を紹介

NVIDIA製だが、筆者のRADEON9600PRO搭載ノートでもちゃんと動作させることができた。わかりやすさはATIの「RENDER MONKEY」を上回る。実際の3Dゲームに、ここで作り込んだシェーダを簡単にエクスポートできるようになると面白くなりそうなのだが……
指のアップの写真から“ニセ”スキンシェーダを作り出してみた例
 午前のセッションでは、ATIの「RENDER MONKEY」の対抗ソフトウェアとも言える「FX COMPOSER」を紹介。これは、簡単に言えば、DirectX 8以降のリアルタイム3Dグラフィックスにおいて要となりつつあるプログラマブルシェーダー技術を、プログラミング知識のないアーティストでもカットアンドトライ感覚にて実験ができるソフトウェアだ。

 ATIの「RENDER MONKEY」がシェーダープログラマ向けのシェーダプログラミング実験ソフトなのに対して、NVIDIAの「FX COMPOSER」は3Dグラフィックスの知識が深くなくても使える……というところに相違点がある。

 たとえば、撮影した写真データを基本的な陰影処理の模式マップとして指定すれば、これを用いた陰影処理をすぐさま3Dモデルに対して適用して、その効果を視認することができる。

 セッション内で示されたのは、ペイントソフトでぼかした指の先の写真画像を陰影マップとして指定。これで3Dモデルのシェーディングを行なうデモであった。これをスキンシェダーと呼ぶには物理現象の再現として見ればおこがましいが、結果としてそれっぽく見えてGPU負荷は低いので、3Dゲームグラフィックスの表現としては使える局面があるかもしれない。

 このような感じで、「FX COMPOSER」を使えば、身の回りのもの、Webサイトにある素材などを活用して独自のシェーダーを作り出すことができる。プリセットされている複数のシェーダーの合成や改造も簡単に行なえるので、一般ユーザーの一人遊びソフトとしても面白そうだ。



■ 3Dゲームグラフィックスで使えそう(?)なユニークなシェーダーを紹介~流血シェーダー/虹シェーダー

 続くセッションでは、NVIDIAのソフトウェアグループの技術者が開発した、実際のゲームに使えるかもしれないユニークなシェーダーの紹介が行なわれた。中でも特にユニークだと思われたものを紹介しよう。

● BloodShader~スプラッタ表現には欠かせなくなるか!? 流血シェーダー

ポリゴンを傾けると、石畳の溝に沿って血が流れる。粘着度に配慮した形で流れ、軌跡には血糊がつく
 現在、3Dゲームにおいて「血」の表現はプレーヤーが見かける機会が多いにもかかわらず、その表現は簡易的だ。そんな状況を打開するために……かどうかはわからないが、NVIDIAのKevin Myers氏は本格的な流血表現ができる「流血」シェーダーを開発した。

 バンプマッピングは、ご存じの人も多いと思うが、凹凸があるかのようにピクセル単位でライティングを行なう技術だ。この実現には凹凸を構成する1つ1つの面の向き(法線ベクトル)をテクスチャ化した法線マップをプログラマブルピクセルシェーダーで陰影処理する手法で実行される。

 流血シェーダーでは、この血痕の盛り上がりにはバンプマッピングそのものを使うので、基本的な陰影処理概念はバンプマッピングそのものになる。違うのは、その血痕が流れる様をシミュレートするために、ピクセル単位に重力のかかり具合を適用してこの法線マップに対して動的な加工を行なっていく点だ。こうしたピクセル単位に物理演算を行なうテクノロジーを、Myers氏は特に「ピクセル単位の物理」の意味を込めたPer-Pixel Physicsと呼んだ。

 発表された流血シェーダーでは、その血痕が乗っているポリゴンの傾き具合、その血痕の粘着性に配慮した形で流速が変化するようにPer-Pixel Physicsが配慮される。それだけでなく、その血痕が乗っているポリゴン側に凹凸がある(バンプマッピングされている)場合には、その凹凸にも配慮しており、たとえば石畳の溝に血痕が染みいったり、ポリゴンの傾きをきつくすればその溝に沿ってさらに血が流れたり……といった様が再現されていた。もちろんその血痕自体にも凹凸があり、血痕が流れればその軌跡にべっとりと血糊が付き、血糊が付いた分だけ血痕の厚み自体は減っていく。

 現在は、テクスチャの2Dアニメーションでしか表現されることのない流血表現が、こうした技術を使うことによってよりリアルになっていくかもしれない。なお、この流血シェーダはプログラマブルシェーダー2.0相当で実現されていた。

制作者のMyers氏はこのシェーダーを「現在の3Dゲームで最も使いどころが多いシェーダーになるのではないか。血の出る暴力ゲームは多いから(笑)」と冗談っぽくこの流血シェーダーのデモを見せた 各ピクセル(テクセル)に対し重力がどうかかっているかを計算していく。フレームからフレームへと計算結果が受け継がれていきそれが結果としてアニメーションに見える。Per-Pixel物理という考え方は3Dグラフィックス表現として興味深いのはもちろん、GPUの活用テーマとしても面白い


● Rainbow Shader~天気雨の情景をリアルに再現するために~虹シェーダー

虹シェーダーを発表したNVIDIA Developer Technology Group Clint Brewer氏
 PS2の「鬼武者3」のゲームエンジンにも採用されていた「光散乱シミュレーション」。これの状況限定型の簡易実装ともいえる「虹シェーダー」をNVIDIA Clint Brewer氏が発表した。

 虹というのは、観測者の後ろに光源となる太陽があるときに、これが空気中の水滴に当たって色分散した光の像をいう。現実世界では雨上がりや天気雨のときに見られる現象だ。

 単純に天球として設定した空に「画として」描画すればいいじゃないかという話もあるが、屋外シーンなどを題材にした3Dゲームで、そうした天候状況があったときに、ある程度現実的な光学物理として再現してやればリアリティは増すはずだ。このシェーダーの開発理由はそんなところにある。

 光がスペクトラム分離したテクスチャを用意し、このテクスチャから、水滴の半径、視線ベクトルと光源ベクトルの偏差角をパラメータにしてテクセルを取り出して貼り付けていく……という概念になる。空気中の水滴については雨などが降りそそぐ様子を描いたノイズテクスチャを用意することになる。この雨テクスチャをアニメーションさせたりすると、出てくる虹に面白い揺らぎが出てきそうだ。

 話は難しい感じもするが、シェーダー自体はただの従属テクスチャ読み込みなので、プログラマブルピクセルシェーダ1.xでも実現できるだろう。使いどころはかなり限られるテクノロジーだが、処理的にも軽いので、「Medal of Honor」などの屋外を舞台にした「戦争もの」3Dゲームなどでは、積極的に採用されるようになるかもしれない。

虹という現象の模式図 光散乱現象の研究者であるRaymond L. Leeが考案したLeeダイアグラムをテクスチャで再現。ここから“a”、“r”のパラメータでテクセルを取り出す
“r”は雨や霧の粒子の半径。これは雨や霧を表現したノイズテクスチャで代用。Leeダイアグラムとノイズテクスチャをたたみ込むようなイメージ 最終レンダリング結果。単に描ききりの虹とは違い、自分と光源の位置関係で虹の出方が変わる。しかもシェーダー自体は軽く、すぐにでもゲームに持っていけそう




■ プログラマブル頂点シェーダー3.0を動かす!
~これが次期GeForce(NV40)の実力だ

次期GeForce(NV40)を使ってプログラマブル頂点シェーダ3.0デモを披露したNVIDIA Jeremy Zelsnack氏
これがプログラマブル頂点シェーダ3.0を活用した「波立ち」デモ。一見しただけではどこがすごいのかわからない。NVIDIAお得意な派手なデモは、NV40正式発表時に公開される予定。これはあくまで機能の実験プログラム的な位置づけ
 最後のセッションでは、これまで隠し通されてきた次期GeForceことNV40(開発コードネーム)の実力が限定的ながら公開された。NV40の詳細はまだ明らかにされていないが(4月発表予定)、プログラマブルシェーダー3.0に対応したNVIDIA製第1号GPUとなることが確実視されている。

 壇上に立ったJeremy Zelsnack氏は、「このシェーダーはプログラマブルシェーダー3.0ベースで、NV40で動かしている」と断った上で映像を公開した。この発言は、NV40がプログラマブルシェーダー3.0アーキテクチャであることを宣言したことに相当する。

 そのデモは、一見しただけではごく普通の、最近では見た目的にちっとも珍しくない水面の表現のデモのように見える。しかし、よく見ると波の立ち方がずいぶん高い。バンプマッピングのフェイクとは違い、波が文字通り「波“立っている”」のだ。

 これはプログラマブルシェーダー3.0の最大の特長とも言われている、プログラマブル頂点シェーダーのテクスチャアクセス機能を活用したデモなのであった。

 プログラマブル頂点シェーダーがテクスチャにアクセスする……という発想は一般ユーザーには少々わかりにくいかもしれない。DirectX 8が登場してGPUがプログラマブルシェーダー・アーキテクチャベースになってから、テクスチャは画像だけでなく、法線ベクトルをはじめとした各種ベクトルデータ、各種数列データを格納するためにも活用されるようになった。続くDirectX 9では、テクスチャが浮動小数点実数をサポートするようになり(実はGeForce FX系はDirectX環境下では未サポートだったのだが!)、テクスチャに高精度なベクトルデータを入れ込むことができるようになった。

 テクスチャにベクトルデータを入れて何をするのかといえば、その例の筆頭に挙げられるのは、法線ベクトルを入れ込んだテクスチャ(法線マップ)を使い、ピクセルシェーダで陰影処理を行なうことで実現されるバンプマッピングだ。

 せっかく高精度なベクトルをテクスチャに入れられるようになったのだから、これをピクセルシェーダだけでしか活用できないのはもったいない。頂点シェーダで活用できればできることの幅が広がるはずだ。かくして、このアイディアが採用されたのがプログラマブルシェーダ3.0の頂点シェーダというわけなのだ。



■ プログラマブル頂点シェーダがテクスチャにアクセスするという概念とは?

 このアイディアが採用されることによって、非常に面白いことが可能になる。ピクセルシェーダでベクトルデータをレンダリングしてやり、これを頂点シェーダに戻して処理してやるような処理系が可能になるのだ。

 具体的に、どんなことができるのか。たとえば、前出のPer-Pixel物理。広範囲な領域の物理計算をピクセルシェーダで行ない、それをテクスチャに出力し、その結果を用いてポリゴンモデルを変形させる、といったことができるようになるのだ。

 もっと具体的に言えば、たとえば地形の変形、キャラクタの変身(人から犬へなどのモーフィング)などができるだろう。今回、Zelsnack氏が発表したのもこの機能を活用したもので、かみ砕いて解説すると、

(1)水面の動きをピクセルシェーダにてPer-Pixel物理演算処理してテクスチャに出力する
(2)このテクスチャを頂点シェーダで読み出して、ジオメトリに反映させる(ポリゴンの頂点を摂動させる)

 という流れになる。

頂点シェーダでテクスチャを読み出して、水面のジオメトリを摂動させた後の、水面の屈折、反射、フレネル効果(屈折と反射の割合の操作)といった表現自体は、これまでの動的なバンプマッピングでやっていた水面表現とやることに大差はない この2つの図はフレネル項を可視化したもの。水面が白ければ白いほど最終レンダリング結果で外界の映り込みを反映させることとなり、黒ければ黒いほど水底の景色が見えることになる




■ プログラマブルシェーダー3.0世代GPUではNVIDIAが反撃に出る!

テクスチャにレンダリングした水面の凹凸状況を、プログラマブル頂点シェーダ3.0のテクスチャアクセス機能を使って、実際のジオメトリ情報として読み出してポリゴンを加工。意味合い的にはピクセルシェーダが頂点シェーダにデータを受け渡す処理系が確立したわけだ
 超ハードコアな3DゲーマーやGPU好きならば、「浮動小数点実数テクスチャの解像度とジオメトリ解像度(ポリゴンの頂点数)が適合しないと見た目がガチャガチャしてしまうのでは?」、こう考えた人もいることだろう。確かに、その指摘は鋭い。

ところがNV40では、プログラマブルシェーダー2.0世代のGPU、すなわちGeForce FX(NV3x)世代、RADEON9500以上(R3x0)世代ではサポートされていなかった、浮動小数点実数テクスチャのフィルタリングやαブレンディングがサポートされるため、そうした問題は表面化しない。このことは今回のセッションで正式にアナウンスされたのだ(頂点シェーダからのテクスチャ読み出しは形成したMIP-MAPから行えるのみ。フィルタリングはサポートされない)。

 プログラマブルシェーダー2.0世代GPUでは、事実上使いどころが限定されていた浮動小数点実数バッファが、NV40でついに汎用バッファとして利用可能になるのだ。

 プログラマブルシェーダー2.0フィーチャーにおいて、事実上、RADEON系に負い目を感じていたGeForceシリーズだが、NV40世代では巻き返しが期待できそうだ。

□「Game Developers Conference 2004」のホームページ
http://www.gdconf.com/
□NVIDIAのホームページ
http://www.nvidia.com/
□「FX COMPOSER」のページ
http://www.fxcomposer.com/

(2004年3月26日)

[Reported by トライゼット西川善司]

GAME Watchホームページ

Q&A、ゲームの攻略などに関する質問はお受けしておりません
また、弊誌に掲載された写真、文章の無許諾での転載、使用に関しましては一切お断わりいたします

ウォッチ編集部内GAME Watch担当game-watch@impress.co.jp

Copyright (c) 2004 Impress Corporation All rights reserved.