GPUクラスタでモバイル端末でも精細画像

GPUが可能にする「リアルタイム」の3Dレイトレ映像

2009/12/17

 「GPUはラスタライズでのみ有効で、レイトレーシングを高速化することはできないと言われてきた。しかし一般通念というのがいつもそうであるように、これもまた間違いだった」。こう語るのは、米NVIDIA特別研究員のデイビッド・カーク博士だ。12月16日から横浜で開催中のコンピュータ・グラフィックス関連の年次イベント「SIGGRAPH ASIA 2009」で基調講演を行ったカーク氏は、GPUや、GPUクラスタによって、われわれが目にするコンピュータ・グラフィックスが、今後どのように変わっていくのかを解説した。

レイトレーシングのほうが画質上は望ましい

kirk01.jpg 米NVIDIA特別研究員のデイビッド・カーク博士

 3Dグラフィックを描画する方法として、現在大きく2つの方式がある。1つはリアルタイム性が要求されるゲームなどで使われるラスタライズと呼ばれる方式で、もう1つは、事前に時間をかけて映像をレンダリングする映画などで用いられているレイトレーシングという方式だ。

 「レイトレーシングのほうが品質の高い映像が作れることは分かっている。ただ、多くの計算資源が必要となる」(カーク氏)

 描画する図形や物体をベクトルデータとして持ち、これをピクセルによる表現に落とすラスタライズ方式に比べて、光線の反射を追跡するレイトレーシング方式は、多様な物質の反射現象を模倣する視覚効果アルゴリズムを組み合わせやすく、写真のようにリアルな表現が可能となる。例えば、光線が物質表面だけでなく、物質表面の内部に入って戻ってくるような反射の仕方を考慮することで、単純にビットマップを貼り付けて影を付けただけの表現よりも、高い質感を出すことができるし、何段階かの反射を計算することで、部屋全体がぼんやり明るくなるような自然な間接光を表現できるようになる。

 レイトレーシングは計算量が多いため、映画製作などでは、事前に数百、数千台のCPUクラスタによるレンダリングを時間をかけて行ってきた。こうした処理が、ハイエンドのGPUを使うことで、ほぼリアルタイムで可能いなりつつあるのだという。

 現在の一般的なPCに搭載されているGPUの演算能力は、高い並列性により1TFlops程度となっており、これは15年前のスーパーコンピュータ並みだという。「PCのGPUは、プログラミング可能な、柔軟で、非常に大きな計算能力を備えている」(カーク博士)。近年GPUは、事前に決められたアルゴリズムに従って並列処理だけを行うパイプラインの塊から、個々にプログラム可能なグラフィック・コアの集合へと進化していて、これが、GPUによるレイトレーシングを可能とした理由の1つだという。

 この変化は2006年にリリースされたGeForce 8800ですでに起こっていて、GPUを物理や金融のシミュレーションに生かす「GPGPU」が、広く注目されるに至っている。長崎大学工学部の浜田剛助教が物理シミュレーションで米電気電子学会の「ゴードン・ベル賞」を受賞したのも、こうした応用の1つだ。

 むしろGPGPUに遅れる形で、プログラム可能なコアを新しいグラフィック分野に応用したのが2009年8月にNVIDIAが発表した一連のインタラクティブなレイトレーシングエンジンだ。

 そのコア製品となる「NVIDIA OptiX engine」は、NVIDIA Quadroシリーズで利用可能なソフトウェア。各種アルゴリズムを実装したレイトレーシング処理を行う仮想的パイプラインをグラフィック・コアで実現するもので、C言語による開発が可能なSDKとして無償提供されている。カーク博士はデモンストレーションで、ほぼリアルタイムな描画が可能であることが分かる映像を示してみせた。マウスでアングルを変える瞬間だけはピクセルを大幅に間引きするなど、まだ完全なリアルタイム処理という感じではないが、見慣れた3Dグラフィックとは明らかに異なる写真のようなリアルな映像が、やや操作から遅れを取りながらも、ほぼリアルタイムで表示されるのに驚く。

realtime.jpg 右側の荒い画像は、マウス操作に反応してリアルタイムにレイトレーシング映像が動くサンプル。動きを止めると高解像度の美しい映像となるし、動いている間も荒いながらも不思議とリアルな感じがする
rayroom.jpg インタラクティブなレイトレーシング映像を生成できるNVIDIAのirayを使った例(NVIDIAのWebサイトから引用)。上から順に昼間、夕方、夜の部屋の様子

今回の講演のものではないが、NVIDAのYouTube公式チャンネルには、ARとリアルタイムなレイトレーシングを組み合わせたデモンストレーション映像が公開されている

GPUクラスタで高品質な映像をWebに

 GPUクラスタを使えば高速化が可能で、これをサーバ側に設置することで、従来にないタイプのWebサービスが実現可能という。12月1日に出荷が開始されたばかりの「NVIDIA RealityServer」は、GPGPU向けの「NVIDIA Tesla RS」とソフトウェアを組み合わせた製品だ。医療やエンジニアリング、デザインの現場でのビジュアライゼーション用途ばかりでなく、オンラインショップの商品紹介や仮想世界への応用もあるという。あらかじめ用意したレイトレーシング映像だけでなく、顧客の操作によって色やセッティングを変更した商品イメージを、写真のようなリアルさで提示するといった用途だ。クラウド側で処理を行うため、クライアントはPCではなく、モバイル端末でも構わないという。

 カーク博士は、プログラム可能なグラフィック・コアの応用は、3Dグラフィックスだけでなく、2Dグラフィックにも及ぶという。現在、PDF、SVG、Open XMLなど多くのフォーマットで、曲線などを表現するためにパスレンダリングと呼ばれる処理を行っている。GPUを使うことでこの演算が大幅に高速化するのだという。例えば約5000個の3次元ベジエ曲線のコマンドを用いて絡み合う犬をモチーフにしたロゴ図形の例では、ソフトウェア(CairoやQt)によるレンダリング処理で1000×1000ピクセルの出力を行うと秒間1〜13フレームとなるのに対して、GeForce 8600GTを使った場合には100フレームを超えるパフォーマンスが出るという。カーク博士によれば、シェーディングやアンチエイリアシングなど、もともとGPUが得意とする処理も、パスレンダリングに有利に働くという。

path.jpg PDF、SVG、Open XMLなどで使われるパスレンダリングでもGPUの効果が高いという

 レイトレーシングのほか、現在NVIDIAでは物理シミュレーションを行うエンジンも提供していて、「もう今後、ゲームのデザイナたちは、物理モデルのことで時間を使わなくても済む」(カーク博士)という。

 GPUやGPGPUは、たまたまあるアーキテクチャが行き詰まったことで、すき間を縫うように出てきた一時的なアーキテクチャとする見方がある。CPUもコア数を増やして並列化は進んでいるし、CPUクラウドによる分散処理も一般化しつつある。

 ただ、カーク博士の予言は、CPUとGPUの差は今後ますます広がるというものだ。「CPUは今後、コアの増加などで年に20〜30%高速化していくだろう。一方、GPUの高速化は年に50倍から100倍と加速していて、その差はますます開くだろう。今のGPUは100プロセッサだが、すぐに1000プロセッサとなる」。CPUではシリアルな処理を行い、GPUでパラレルな処理を行う。プロセッサに適した処理をヘテロな環境で行うことが今後ますます重要になるだろうとして講演を締めくくった。

関連リンク

(@IT 西村賢)

情報をお寄せください:

HTML5 + UX フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

キャリアアップ

- PR -

注目のテーマ

ソリューションFLASH

「ITmedia マーケティング」新着記事

エンワールド・ジャパン片山 旭氏が語る、マーケターからカスタマーサクセス スペシャリストへの道
B2Bマーケター注目のイベント「Bigbeat LIVE」が2019年8月2日に開催される。そこに登壇す...

夏休み中の小学生のテレビ視聴は41分増、ネット動画視聴は26分増――スカパーJSAT調査
スカパーJSATは、夏休み中の小学生の生活時間についての調査を実施しました。

継続的な改善でWebサイト育成、成功に近づくために必要なこと
Webサイト育成のポイントは、制作を担う部署だけでなく関係部署が連携して取り組むことに...