ニュース
[CEDEC 2007]シェーダスペシャリストが語る5年先まで見据えたゲーム表現とは?
このセッションでは,今後の技術動向を見据えながら,できるだけ長期間にわたって一線で遊んでもらえるようなビジュアルを持つゲームを作るにはどうすればよいかなどの考察が示された。
約10年前の1996年の状況はといえば,主要OSはもちろんWindows 95である。CPUはPentiumが主流でMMX Pentiumはまだ出てきていない。CPUクロックは133MHzくらいだ。
最新のCG映画は「トイストーリー」で,DVDは登場したばかりでレーザーディスクがカッコいい時代,そしてNVIDIAという会社が誕生したのも1996年である。
なお,氏のリストでは,真っ先に「Googleがなかった」ことが挙げられていたのだが,Yahoo!とAltaVistaはあったわけだから,普通の人には大きな違いはないかもしれない。次に挙げられているアニメのビデオを借りるのに車で遠出しなければならなかったという状況は,アメリカ特有のものであろう。日本の状況とはかなり異なる。
NV1は,当時MicrosoftがDirect3Dの仕様を策定中にもかかわらず,独自仕様で先行投入された製品で,バーチャファイターPCをバンドルしていたことで話題になったものの,商業的には成功しなかった。
その後の10年で,RIVA128,TNT,GeForceと高性能製品を続々と投入し,2006年末にはGeForce 8シリーズが発売されている。性能や表現力の違いは桁違いになっているといってよい。
当然ながら,ゲームの表現力も桁違いになってきているのだが,そのような進歩の速い業界で,いつまでも変わらずプレイされるようなゲームは存在しうるのだろうか?
現実の例として,1996年に発表され,いまなおアメリカでも遊び続けられている「風の王国」の例が挙げられた。10年以上遊び続けられるゲームというのは存在するものなのだ。
そのプラットフォームとしては,どこにでもあり,ネットワークにすぐつながり,プログラムのアップデートなどに対応しやすく,扱いやすいという点でPCが重要であるという。
また,同様にGPUというデバイスの存在も重要であるという。PCのみならず現世代のコンシューマゲーム機に軒並み搭載されたことを見ても,汎用性が高く,できることも多い。また,今後よほどのことがない限り,シェーダプログラムの書き方が一新されるようなこともないだろう。
2014年のPCでは,CPUクロックは100GHz,メモリクロックは44GHz,HDDは30TB,GPUの演算能力は10T FLOPSに達する計算となる。
CPUの100GHzというのはあまりありそうにない気がするのだが,10GHzのCPUコアが10個くらい入っているCPUなら普通にありそうな気がする。そういう形態も含んでの数字だと思っておこう。
なお,この表にはメインメモリ容量が抜けているのだが,Windowsのシステム要件などから推測すると,だいたい2014年では16GB程度になるのではないかと思われる。これだとグラフィックスメモリにデータを渡すのはちょっと大変だ(たぶん,Windowsを快適に使うためにも32GBくらいは積んでおいたほうがよいのだろう)。
要するに,PCの性能は現状と比べてると,とんでもないくらいに向上することが見えている。今後はGPUだけでも,「クレイジーなこと」ができるという。このスペックに合わせたゲームを作るというのも大変そうな話である。
この勢いでは,2013年には,3〜5GBのアートワークを300人以上で制作しなければならなくなるという。さらに先を考えると,世界中のアーティストを総動員して,年に1本くらいのゲームしか作れなくなってしまうという。そのコストは回収できるのか? 誰かがなんとかしなくてはならない状況がきているとBjorke氏は語る。
以下,今後のゲーム開発で問題となったり使えそうな技術的トピックなどが多数紹介された。話に登場した例があまりに多いので,かいつまんで紹介してみよう。
●物理演算
物体同士の物理演算ではなく,煙や流体,爆発などが例に挙げられていた。26日にも解説したような流体力学も余裕で取り入れられるようになるだろう。また,オンラインゲーム用には,GPUを搭載したサーバーというものもすでに存在しており,サーバーサイドで物理演算を行うオンラインゲームが予想されていた。
Farrar Focusという会社が紹介された。小規模なグラフィックアートデベロッパが,DirectX 10ベースで意欲的な開発を行っているという。小規模な会社でも,大企業を超えるようなものを作れるようになってきている。これは新しい流れを生み出すのかもしれない。
●美しさの重要性
NVIDIAの各種デモで登場してきた美女達のように,美しさを追求する方向性である。これはプレイヤーとの相互作用が多くなればなるほど,こういった要素が重要になってくるという。
これもNVIDIAのデモで再三改良版が公開されているが,さまざまな分野で応用できることから,非常に重要な技術であるという。GeForce 8800の登場時には,Adrienneと同時にカエルのデモも公開されていたのだが,両者で使われているスキンシェーダは同じものなのだそうだ。
●髪
Final Fantasy the Movieの主人公,Aki Rossの例が挙げられ,この髪の毛だけで,当時使用されたコンピュータリソースの25%が費やされたという例が紹介された。当時,ハワイに設置されたスクウェアのレンダリングクラスターは,PCベースのマシンをGiga bit Ethernetで接続し,Linuxベースの分散システムで駆動させていた。多数のPCはラックに組み込みこまれ,そのラックが林立するという,比較的低コストながら,ものすごい演算能力のシステムが構築されていた。それをもってしても難物であったという話である。「幸いにも,髪の毛は平行に生えていた」という言葉からして,かなりの最適化を繰り返してなおそれだけの負荷であったことが窺える。
髪のジオメトリは物理演算や身体との干渉を考慮しつつ,ダイナミックな変化ができるものとなっていたようだ。一度それをやってしまうと後戻りできなくなるとのこと。
本気で計算するととんでもないことになるのだろうが,多少カクカクしているものの,Naluではリアルタイム表現も実現されており,ゲームへの導入も不可能ではなさそうに思われる。
物体の一部だけ金属質にしたい場合に,マッピングとシェーダだけで解決する手法がメタルマスクである。
そこで使用するテクスチャに複数のシェーダを指定する手法として,ステガノグラフィーマスクというテクニックが紹介された。ステガノグラフィーとは,電子透かしなどに用いられる技術で,目に見えない情報を書き込む技術である。
どういう用途を想定したものかを簡単に説明しておこう。例えば,NVIDIAのデモであるNaluでは,テクスチャのα値を見て肌に鱗があるかどうかを判断するシェーダが組み込まれていた。これならテクスチャデータそのものに組み込まれているので,精密な制御も可能であるほか,グラフィックツールで簡単に指定できる。では「α値は,ほかで使っているよ?」という場合にはどうしたらいいだろうか?
ここで紹介されたステガノグラフィーマスクは,テクスチャ自体(カラーマップ部分)の最下位ビットをフラグとして使うというやり方だ。もちろん表現できる階調は半分になってしまうのだが,最下位ビット付近では少々誤差があってもあまり気にならないのも事実である。
これを利用して,金属の質感を要所要所で指定していく手法が紹介された。例では,なぜか赤プレーンの最下位ビットが使用されていた。輝度のダイナミックレンジを考えると,青プレーンを使うほうが階調落ちを目立たなくできるのではないかと思われるのだが。これをRGBαのプレーンへと応用していくと,同様の手法で16種類のシェーダを切り換えることができることになる。
もちろん,シェーダの種類を指定するテクスチャを別途用意してやってもよいのだろうが,リソースを節約できれば,ほかの部分でさまざまなことができるので,節約できるに越したことはない。
●テクスチャ解像度を上げる
ディスプレイは年々高解像度になり,テクスチャも解像度が求められている。
また,テクスチャを張ったポリゴンデータが大きく拡大表示されたときに,テクスチャのピクセル自体がギザギザに見えたり,あるいはぼけぼけのテクスチャが表示されることがある。超近距離に対応した巨大なテクスチャを用意しておけばよいのだが,そうもいかない場合も多い。
これを目立たなくする手法として,紹介されたのが,近接時にテクスチャにノイズを与えるというものである。ノイズによってエリアシングの直線的な部分が消えると,人は解像度が高いように感じてしまうのだという。低解像度のJPEG画像を拡大表示する場合にも同様な手法が有効であることも示された。これは低コストかつ,既存のリソースを変更する必要のない手法である。
レンダリング時に処理するのではなく,レンダリング後の画像をいくつか使って処理を行うような画像処理は,レンダリングを軽くしつつ,多彩な表現を行える可能性がある。ここではマスクにブラーを掛けて引き算するデプスマスク処理などが紹介された。古めのモデリングデータをちょっと印象的にレンダリングできる。
今後10年でグラフィックス環境が大きく進展していくことは間違いないだろう。今後数年先を見据えたアート表現を語るうえではやはりシェーダ技術が重要になりそうだ。
- この記事のURL: