オススメ機能
Twitter
お気に入り
記事履歴
ランキング
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
SIGGRAPH Asia 2009,David Kirk氏基調講演レポート。「グラフィックスは並列化されていく」
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2009/12/18 00:00

ニュース

SIGGRAPH Asia 2009,David Kirk氏基調講演レポート。「グラフィックスは並列化されていく」

 CGの祭典「SIGGRAPH」。そのアジア版と位置づけられる「SIGGRAPH Asia 2009」が,2009年12月16〜19日にわたって横浜で開催中だ。日本初開催となるSIGGRAPH Asia,初日は開発者向けのセッションが中心だったが,展示会場がオープンした2日めには,NVIDIAのDavid B.Kirk(ディビッド・カーク)氏が基調講演に登場してきた。
 現在,CUDAのエバンジェリストを務める氏の演題は,「ヘテロジーニアス・コンピューティングの効果」。基本的には,GPUを用いたレイトレーシングの可能性といった話が中心だったが,ゲームへの応用など,4Gamer的に大変気になるテーマもあったので,今回はそのあたりを中心にレポートしてみたい。


レイトレーシングAPI「OptiX」とゲームへの応用


 古くからの4Gamer読者には釈迦に説法だが,Kirk氏はコンピュータグラフィックス業界におけるパイオニアの一人であり,1997年のNVIDIA入社後は,チーフサイエンティストとして,長きに亘(わた)り,NVIDIA開発部門の“顔”を務めてきた人物だ。2009年1月にその座をBill Dally氏に譲ってから,一時期は表舞台に立つ機会が減っていたが,最近はCUDAエバンジェリストとして,大学などで講演を行うことが多くなっているという。

David Kirk氏
 さて,Kirk氏は,「今日(こんにち),デスクトップPCのGPUは1TFLOPSというパフォーマンスを得た。我々は“グラフィックスをやる”のに素晴らしい時代に生きている」と挨拶。「GeForce 7までは固定パイプラインだったが,GeForce 8でパイプラインを一般化し,バーチャルパイプラインにした。GeForce 8以降,GPUのダイは大部分が高スループットの演算器が占めるようになり,グラフィックス以外にも,エミュレーションやさまざまな処理を効率的に行えるようになった」と,プログラマブルになったGPUの意義を強調する。

CUDA
GeForce 7800の固定グラフィックスパイプライン。「固定パイプラインはいい面もあったが,使いやすいハードウェアではなかったね」とKirk氏
CUDA
「NVIDIAのGPUは240のプロセッサコアまで実現しており,すべてのコアで同じプログラムを走らせることができる」そのそれぞれのコアで同じプログラムを走らせることができる」とKirk氏。そして,そんなプログラムを作成するための道具として,CUDAが重要になってきているというわけだ
 シリアルな(=連続した)プログラムに適したCPUと,パラレルな(=並列の)プログラムを得意とするGPU。これらを併用することで,さまざまな処理を効率よく行えるというのは,NVIDIAが以前から主張してきたことだが,Kirk氏いわく,「(今は)処理を継続的にGPUへ移していかないと,CPUの速度に処理全体が制限を受けてしまうようになった」。CPUがボトルネックとなり,GPUの足を引っ張るような状況が出てきているという。
 それゆえに,「GPUの並列処理能力を効率的に働かせることが可能な,CUDAというアーキテクチャが重要になってくる」(Kirk氏)。

 では,そんなGPUで何をやるのか? 今回の講演で,Kirk氏が多くの時間を割いたのが,レイトレーシング(Ray Tracing)である。
 ご存じのように,現在のDirectXやOpenGLでは「ラスタライズ」(Rasterization)という手法――空間にポリゴンを置いて,それをピクセルに変換するという手法――を用いている。これに対して,(CGにおける)レイトレーシングでは,ピクセルの側から,ピクセルに当たる光線を光源へ辿ってポリゴンを探索するという手法を採用しており,「ちょうど,ラスタライズと逆のオーダーになる」とKirk氏は説明する。

なぜレイトレーシングなのか? Kirk氏が挙げた最大の理由は「エフェクトが干渉しない」という点だった
CUDA
 次の疑問として出てくるのが,「では,なぜレイトレーシングなのか」というものだが,Kirk氏はこれに対し,「さまざまなエフェクトが干渉しないため,きっちりとした表現ができる」というメリットを理由として挙げていた。裏を返せば,ラスタライズではエフェクトが干渉するということになるが,実際,ラスタライズでは,例えば「アンビエントオクルージョン(Ambient Occlusion,環境光が届かない部分を暗くする技術)を使って陰影を表現すると,他のエフェクトとアンビエントオクルージョン処理が干渉して,最終的に現実味のない画像になるといったことが起こり得るのである。

CUDA
OptiXの概要。プログラマがセットアップした情報とプログラムを,JIT(Just In Time)コンパイラがGPUのプログラムに変換して実行する形になっているとのことだ
CUDA
Weta Digialと共同で,「OptiXを用いて,制作過程におけるライティングとレビューの工程を一本化するアプリケーション」を開発。大幅な作業の効率化を可能にした例が紹介された
 レイトレーシングには,そういった明確な利点があるのだが,その一方で,「GPUではパラレルマシン上に実装するのが難しい」(Kirk氏)という難点もあるという。本来なら,並列処理に向くと言われるレイトレーシングだが,GPU上で実行するのは難しかった,ということなのだろう。そして,この問題に対して,NVIDIAが用意したのが,2009年8月のSIGGRAPH 2009で発表された新API「OptiX」だ。
 氏は,「レイトレーシングAPI(=OptiX)をGPUへ実装するに当たって,いろいろな教訓を得ることができた」と振り返っていたが,ともあれ,このOptiXを用いれば,レイトレーシングを用いたインタラクティブなグラフィックスを作成することができるという。

 OptiXはすでに商用アプリケーションで採用されており,映画のVFXを手がける著名なプロダクション,Weta Digitalとの協業において,制作過程の大幅な効率化を果たした例などをKirk氏は紹介していた。その例としてスクリーンショットも紹介されたのだが,残念ながら撮影不可ということで,お見せすることはできない。

CUDA
ボクセルレンダリングで描かれた画像。Kirk氏によると,「ジオメトリのデータベースをテクスチャに変換し,ボクセルベースでGPU上でレンダリングしたもの」。非常にリアリティのある画像になっている
CUDA
左がボクセルレンダリングで得られた画像。右は,それにブラー(Blur)によるアンチエイリアシングを施した画像だ。このような補正は現在のGPUにとって,パフォーマンスの低下なしに行えるため,ボクセルレンダリングを行う意味もあるという理屈
 ここで,Kirk氏はボクセルレンダリング(Voxel Rendering)に話を移す。ボクセルレンダリングというのは,空間を分割して“何もない空間”を探し,その部分のレンダリングを省略するという,言わば簡略化の手法である。

 ここでボクセルレンダリングが出てきた理由について,Kirk氏は「レイトレーシングは,データベースに非常にコストがかかるからだ」と説明する。平たく言えば“重い”のだ。リアルタイム性が求められるゲームなどのアプリケーションでは大きな問題となる部分だが,ここをボクセルレンダリングで軽くしてあげようというわけである。
 もちろん,解像度が低いボクセルレンダリングで得られる画像は良質ではない。だが,「いまのGPUにとって,クリッピングやアンチエイリアシングは“コストフリー”だ」(Kirk氏)。粗いボクセルレンダリングの画像でも,ポストプロセッシングで向上できると,Kirk氏は指摘する。

 さらに氏は,DirectXやOpenGLといったラスタライズ法と,CUDAベースのOptiXによるレイトレーシング法の中間に「興味深い領域がある」と述べ,その例を示して見せた。これは画像で見てもらったほうが分かりやすいので,下に並べたイメージをチェックしてほしい。

DirectXやOpenGLといったプログラマブルシェーダベースの手法と,CUDAによる純粋な計算によるグラフィックス処理の手法,それらのちょうど中間に,興味深い方法があるとして,Kirk氏はラスタライズとレイトレーシングを組み合わせた手法を挙げる
CUDA

CUDA
これは直接光のみでライティングした画像。間接光がないため,影が潰れて細部が見えない
CUDA
レイトレーシングの技法を用いて,部分的に間接光を計算する。丸い印の部分が,計算するところ
CUDA
すぐ左で紹介した「部分的に間接光を計算する」技法によって得られた間接光の画像がこれだ

CUDA
両方を合わせた結果がこれ。「非常にリアリティのあるグラフィックスになっている」とKirk氏
CUDA
こちらは,比較対象として紹介された,擬似的な間接光を用いて表現された画像。要するに,現在,ゲームで多用されている手法だが,全体から受けるリアリティは,確かに一段劣る印象だ

 このほかKirk氏は,NVIDIAが以前からデモで良く利用している流体シミュレーションなどを示し,「GPUは演算能力のモンスターだ」と,GPUのパワーを強調。シミュレーションやレイトレーシングといった技術が「ゲームに乗るのが非常に楽しみだ」とも述べていた。


「グラフィックスは並列化されていく」


CUDA
 以上,GPUによる並列処理の可能性を次々と挙げるKirk氏。もちろん,グラフィックス処理のなかには,並列処理が行えないものはあり,氏もそれは認めていたが,「それでも,グラフィックスは(今後も)並列化されていくだろう」との見通しを示していた。そして,「物理シミュレーションや環境マッピングといった技術によって,グラフィックスをより魅力的なクォリティに押し上げていく時代が来る」とも断言する。
 「CPUは確かに高速化していくだろうが,毎年20〜30%程度。一方,GPUの性能向上は加速しており,成長速度はCPUよりも速いのだ。将来,グラフィックスの手法は,根本的に変わっていくに違いない」――Kirk氏はそう述べて,講演を締めくくった。

 レイトレーシングをゲームに用いるということは,2008年頃から現実味を持って語られ始めている。実際,ラスタライズによるリアリティの向上は頭打ちになりつつあるので,この状況を打開するためのレイトレーシング,というのは十分にあり得る方向だろう。
 「部分的にレイトレーシングを取り入れる」という,Kirk氏が挙げたような例は,そう遠くない将来,ゲームにも取り入れられることになりそうだ。来るべき2010年にそれが見られるかどうかはさすがに疑問だが,3Dゲームのリアリティに,大きなブレイクスルーが訪れることを期待したい。
  • 関連タイトル:

    CUDA

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
トピックス
スペシャルコンテンツ
注目記事ランキング
集計:08月19日〜08月20日
タイトル評価ランキング
81
KENGOHAZARD2 (PC)
76
Days Gone (PS4)
76
55
DEAD OR ALIVE 6 (PS4)
53
Anthem (PC)
2019年02月〜2019年08月