[SIGGRAPH]2035年,ゲームグラフィックスはパストレーシングへ。NVIDIA技術者が語る未来予想図
会期初日の現地時間の7月28日には,「Are We Done With Ray Tracing?(我々はレイトレーシングをものにできたのか?)」(参考URL)というタイトルのコースセッションが行われた。このコースセッションでは5つの講演が行われたが,本稿では,「ゲームグラフィックスの未来像」について語られた「From Raster To Rays In Games」(筆者意訳:ゲームグラフィックスにおけるラスタライズ法からレイトレーシング法への変革)をレポートすることにしたい。
講演者はNVIDIAのMorgan McGuire(モーガン・マクガイヤ)氏である。
SIGGRAPH 2019の会場となったロサンゼルス・コンベンションセンター。E3と同じ会場だ |
会場内の風景 |
ゲームグラフィックスの歴史から考察するその未来像
Atari 800の5年後に任天堂のファミコン(NES)が,世界初のGPU(すべてのグラフィックス処理を担当するプロセッサ。それまでのDirect3D用製品ではCPUがジオメトリ処理は担当していた)GeForce 256が誕生して,その5年後には「DOOM3」のような,特定のGPU(このときは具体的にはGeForce FX以降)でないと,すべてのグラフィックス要素を有効化できないゲームが登場した。
そして2018年には世界初のリアルタイムレイトレーシング対応GPUのGeForce RTXシリーズが発表となり,この流れで行けば,その5年後の2023年頃には「リアルタイムレイトレーシングがなければ動かないゲーム」も出てくるだろうとMcGuire氏は予測する。
新技術発表の5年後には,その技術は円熟期を迎え,その技術前提のゲームグラフィックスが誕生してきた歴史があるとMcGuire氏 |
プログラマブルシェーダの概念が登場した2000年以降から近年まで,ゲームグラフィックスは「プログラマブルシェーダの応用技術」の時代で,McGuire氏は「Raster Heroes」(ラスタライズヒーロー)の時代と喩える。
この時代は,アートワークの段階でCPUを(場合によってはGPUも)使ったオフラインレイトレーシングによって,事前計算で構築した大局照明データをランタイム上で活用するのが主流だった。プログラマブルシェーダ時代全盛期において,「レイトレーシング技術はいわば事前計算のためのもの」という扱いだった。
それが,GeForce RTXが登場して以降,急速にリアルタイムレイトレーシング活用の研究が始まった。「Battlefield V」は,ツルツルした表面における鏡像生成のためにレイトレーシングを利用した。「Metro Exodus」では,1バウンスの拡散光の大局照明適用のためにレイトレーシングを利用した。「Shadow of the Tomb Raider」は直接光による影生成のためにレイトレーシングを利用した。第1世代のレイトレーシング対応ゲームはレイトレーシング技術を1ポイントリリーフ的に利用するのみだったわけだ。
McGuire氏は,8月末に発売されるRemedyの「Control」では,これが,次のステップに進むと主張する。
Conrolでは,前出の3作においてレイトレーシングによって実現していたグラフィックス要素のすべてと,さらに+αの要素までをレイトレーシングで実現しているため,ほとんど「レイトレーシング技術ありき」のグラフィックス設計がなされているというのだ。
ただ,レイトレーシングに対応していないGPUを持っている人のほうがまだまだ多いため,Controlの各グラフィックス要素は「レイトレーシングを使わないときのための代替(Fallback)技術」も実装されている。McGuire氏によれば「こうしたFallback対応はゲームグラフィックスを1.5タイトル分開発するくらいの労力が必要である」と述べ,「レイトレーシング対応GPUが主流になった頃にはそうした苦労からも解放されるばかりか,それまでレイトレーシング非対応GPUへの対応のために実装しなければならなかったアートワークや事前計算から解放されることとなり,いくつかの面においては開発労力を以前よりも減らすことか期待できる」とまで語っていた。
そしてMcGuire氏は,2035年あたりには,ゲームグラフィックスに「パストレーシング」が取り入れ始めるだろうとも予測する。パストレーシングは,光の経路を調べるレイトレーシングの一種というか,レイトレーシングを拡張したものに相当する。現在の映画向けCGはほぼすべてパストレーシングによって描画されている。
理論上は光の追跡で無限大の数のレイを放つのが理想なのだが,そうはいかないので,ランダムな方位に無数のレイを放つような,確率論的なアプローチが主流である。当然,放ったレイの数が少なければ,レンダリング結果は誤差が多く,ノイジーなものとなる。美しい映像を得るためには,ノイズを低減させるか,あるいは時間を掛けてたくさんのレイを放って計算するかのどちらかということになるが,いずれにせよ,ゲームグラフィックスで採用するためには専用のハードウェアなどを搭載し,リアルタイム描画できるようなものに仕上げてくる必要がある。これがあと約15年後には実現可能になるだろうと,McGuire氏は確信しているようである。
では,まさに現在から,そのパストレーシング時代を迎えるであろう2035年まで,ゲームグラフィックスはどのような進化を遂げていくのだろうか。
McGuire氏は「まずは『レイトレーシング法とラスタライズ法の併存(Coexist)時代』があり,その流れの中で徐々に『レイトレーシング法とハイブリッド法のハイブリッド時代』へと移りゆくだろう」と予測する。
「レイトレーシング法とラスタライズ法の併存時代」とは,まさに前出のConrolのようにレイトレーシング法に積極対応するものの,レイトレーシング法に対応しないGPUやゲーム機のオーナーのために,両対応を迫られる時代だ。グラフィックスエンジン側には,各表現要素ごとにラスタライズ法版とレイトレーシング法版の両方が併存するわけである。
「レイトレーシング法とハイブリッド法のハイブリッド時代」は,グラフィックスの各表現要素において「レイトレーシング法がよいのか」「ラスタライズ法でも問題ないのか」を吟味して,適材適所で使い分ける時代だ。例えば直接光によるライティングやシェーディングはラスタライズ法でレンダリングしても問題ないが,鏡面反射の鏡像生成はレイトレーシング法のほうが優れている。この時代になると,現在の画面座標系のポストエフェクトで鏡像を生成するScreen Space Reflection(あるいはRealtime Local Reflection)といった技法は使われなくなるかもしれないともMcGuire氏は予測していた。
ゲームグラフィックスにレイトレーシングを導入する際に取り組まなければならなくなる4つの問題とは?
これまでプログラマブルシェーダ技術の応用や工夫で進化してきたゲームグラフィックスは,今後はリアルタイムレイトレーシング技術の応用や工夫で進化していくだろうとMcGuire氏は予測する。
ただ,その道のりは平坦ではなく険しいものになるだろう,とも述べている。というのも,ゲームグラフィックスの表現要素のすべてをリアルタイムでレイトレーシングを実装するためには,まだまだ今後考えていかなくてはならない問題が山積みだからだ。
McGuire氏は,「その問題」の代表的なものを挙げていた。
1つは,材質表現(Material)の問題だ。
「レイを放ち3D空間を突き進ませ,何かに衝突すれば衝突先の情報を回収してくる」という仕組みのレイトレーシングでは,当然,衝突先の材質に従った処理を行う必要がある。衝突先が複雑な材質だった場合は,衝突のたびにこの材質表現にまつわる計算が必要になる。それが着目しているピクセルに近いものであれば,影響が大きそうなのでちゃんと計算したほうがよいかもしれないが,そうでないならば簡略化してもよいかもしれない。
透明値(α値)で型どりしたようなテクスチャで表現される「髪の毛」や「葉っぱ」のような材質は,そのテクスチャが適用されたポリゴン(三角形)の不透明テクスチャ部分が実体に相当する。レイトレーシング法でレイがこうしたポリゴンに衝突した場合にはαテストを行って「不透明か/透明か」(実体物と衝突したか,そうでないか)を判定しなければならない。これも負荷が大きいので「Level Of Detail(LoD)の概念の導入が必要かもしれない」とMcGuire氏。
2つめはジオメトリの問題。
現在のリアルタイムレイトレーシングでは,すべての3Dオブジェクトを,階層的な直方体構造体であるBVH「Bounding Volume Hierarchy」て管理する仕組みを取っているが,オープンワールド級の広大なシーンのBVHをどう取り扱うのか(ストリーミングさせるのか)が問題となる。現在はソフトウェアで実装されているBVH処理をハードウェア化するアイデアがあるようで,このコースのNVIDIAの別のエンジニアによるセッションではその話題も取り扱われていた。
ゲーム世界に存在する3Dオブジェクト全員のアニメーションをどう適用するのか,といったことも問題となる。人間キャラクターは手を広げたり,走ったりといろいろなポーズを取る。ゲームでは各キャラクターを,その3Dモデル内に仕込まれたボーン(骨)を動かして,姿勢を変更する(アニメーション処理)。ラスタライズ法では,画面に見えている一定距離範囲内のキャラクターについてこれを行えば良かったが,背後にいるキャラクターが手前の鏡に映り込んできたりする状況のことを考えれば,画面に見えていないキャラクター達にもアニメーション処理の適用が必要となる場合がある。
ここにもなんらかの特有のLODシステムの導入が必要そうである。
3つめはライティング/シェーディングの問題。4つめはサンプリングの問題。
無数の光源があったときに,着目しているピクセルに対してどの光源までの影響を考えればいいのか。また,少ないレイ数でレイトレーシング法を実装したときのノイジーなレンダリング結果をどうするか。そういった問題もレイトレーシング法を取り扱ううえで重要な問題となってくる。
実車両のヘッドライトの内部の反射ミラーなどはかなり複雑な反射経路を伴っており,髪の毛や液体,ガラスなどの屈折/透過などを伴う材質のライティングも一筋縄ではいかない。これをどこまでゲームグラフィックスで真面目に取り扱うべきなのか。そうした問題もある。
「リアルタイムレイトレーシングがゲームグラフィックスにやってきた」とはいってもまだまだ第1世代。
ここで挙げたような問題についても,「いずれ世界中のゲーム開発者やハードウェア開発者から,ユニークなアプローチが提唱されていくはずで,今後急速にリアルタイムレイトレーシング技術が進化していくことだろう」というまとめとともにMcGuire氏は講演を終えた。
実際,プログラマブルシェーダ時代のゲームグラフィックスも,最初期は難しいとされていた影生成,大局照明,鏡像生成も独特な手法でそれっぽく生成できるテクニックが多数考案されてきており,その生み出された数々のテクニック達同士にも淘汰があった(影生成においては先に実用化されていたステンシルシャドウボリューム技法は淘汰され,後発のシャドウマップ技法に取って代わられたように)。おそらくはリアルタイムレイトレーシング技術におけるこうした課題についても,さまざまな新技術が発表され,それら同士がぶつかり合って淘汰発展していくのだろう。
来年以降,次世代PlayStation,次世代Xboxの二大家庭用ゲーム機にリアルタイムレイトレーシング技術が搭載される見込みであり,世界中のゲーム開発者が,今後,McGuire氏が挙げたような問題に取り組むようになるわけで,今後の展開には期待できそうである。