肉眼で見る世界は、万物の反射が相互に作用し合う、光の世界です。

それをリアルタイムに計算し、再現できるレイトレーシングの最新技術を搭載した初のGPU ｢GeForce RTX 20｣シリーズのゲーム映像、すごいですよね。あらかじめ計算する映画のプリレンダリングと、もはや区別がつかない実写レベルです。

次世代グラフィックスカードの標準になりそうな予感がプンプンするリアルタイム・レイトレーシング。基礎をちょっとおさらいしてみましょう。

基本的なしくみ

RTXは｢レイトレーシング（Ray Tracing）｣の次世代技術を指します。レイトレーシングとは文字どおり、空中を移動する光子の動き（光線）を追跡する手法のこと。現実と区別できないバーチャル世界の再現を目指す技術です。口で言うのは簡単ですが、映画やゲームでは特に光源も、光が当たる物体も絶えず動き回りますから、膨大な数の計算が必要。実現は容易ではありません。

レイトレーシングの歴史は古く、グラフィックス技術誕生の瞬間からコード開発者によって実現の試みは繰り返されてきました。しかし、精度と処理速度においてNvidiaの新GPUは、次世代に突き抜けた感があります。

Image: Nvidia

レイトレーシングでは、目から世界をとらえます。つまり光源から光の動きを追跡するのではなく、最終到達点の目から光源まで光の動きをリバースに辿っていくんですね。各シーンごとに、視界に入る物体の質、大きさ、互いの距離、光源に対する角度などをもとに計算しながら。

黒い布が弾く光は、金属の球が弾く光とはまったく違います。レイトレーシングのアルゴリズムでは、視界に入る物体すべてに対し、こうした要素すべての解析を行ない、物体に当たる光源の解析も行ないます。しかも光は反射し、照り返し、2次反射、3次反射を繰り返しながら入れ子のように進んでいきますから、数百万個分ものピクセルごとに計算を行なうのはますます大変。

それやこれやで膨大な処理能力が必要なため、高度なレイトレーシングは前からあったものの、どうしても静止画や前もって編集できる映画のCGIに限られていました。たとえば2014年のディズニー映画『ベイマックス（Big Hero 6）』（動画上）では、なんと4カ所に点在する計55,000コアのスパコンを駆動し、1日40万件、110万時間相当の計算処理を行なって、この超リアルなサンフランソウキョウを再現しています。

ピクサーは映画『カーズ（Cars）』で採用したレイトレーシング技法をわざわざ論文にまとめて公開していますけど、｢レイトレーシングをレンダリングに組み込むことで、正確な反射、細かい影、アンビエント・オクルージョン（光の遮蔽）など、数多くのエフェクトが可能になった｣と書いています。

Image: Nvidia

影、反射、屈折。どれもPCゲームでは前からあるエフェクトです。ただ、これまではグラフィックアーティストの近似推計に基づく再現で、割と大雑把なものでした。リアルタイム・レイトレーシングへの転換は、｢手書きベースのグラフィクスから物理学ベースのグラフィクスになるほどの違いがある｣と、NvidiaのTom Petersen技術宣伝部長は言っていますよ。

聞き手のGamer Nexus編集長も｢うちの番組の冒頭のアニメもレイトレーシング使ってますけど、たった2秒の120フレームの動画をつくるのに2週間かかった｣（2分48秒～）と身近な例を引いて、それがリアルタイムでやれるんだからすごいよね、と言ってます。

ラスタライズ法との違い

従来のレンダリングでは｢ラスタライゼーション｣と呼ばれる技法が主流でした。これはあらゆる方向に散乱する光を辿るのではなく、光源があたる三角（ポリゴン）の塊の3Dモデルから平面のドットの色を計算する技術です。ポリゴンは数百万個分もあって、そこから4K映像だと800万ピクセルものドットに落としていきます。やっと再現できても、画像（フレーム）は1秒に30～90回もコロコロ変わっていきますから、GPUの負荷はどうしても上昇します。

Image: Nvidia

また、ラスタライゼーションでは光があたる面は明るくなって反対側は暗くなるんですけど、現実の世界では光はあらゆる角度に散乱し、反射し、互いに照らし合って進んでいきますので、そこまで単純ではありません。

今回NvidiaとMicrosoftなどのエンジニアが実現した新しいレイトレーシングでは、プリレンダリングなしに超リアルな光が再現できる点が一番の特徴。違いが一番よくわかるのは、曇りガラス、ステンドグラス、滝なんかを通るような、複雑な光のシーンとされます。

Nvidiaのグラフィクスカードのレイトレーシング

Image: Nvidia

NvidiaがGTXに変わる次世代カード｢RTX｣シリーズで前面に出している、Turing GPUアーキテクチャで実現したリアルタイムレイトレーシング。まずは初対応のゲーム『シャドウオブザトゥームレイダー』を見てみましょう。逆光で完全に影になるところなんかは、レイトレーシングでないと再現が難しいシーンです。

半世紀前からエンジニアや専門家がずっと追い求めてきたリアルな表現であり、映画の世界からゲームに広げるレンダリングの新標準、というのが新カードの位置づけです。

3月に発表されたUnreal Engineの映画『スターウォーズ』のデモでも、反射がリアルで実写と見分けつきません。こちらの場合プロ向けGPUのRTXカードだし、バックグランド処理ではラスタライゼーションも少々使ってますが。

新RTXカードでは、レイトレーシングを｢レイキャスティング（光線経路追跡）｣と｢シェーディング（物体の最終的な見た目）｣にわけており、RTコアは前者のレイキャスティングの処理速度を高める仕様になっています。処理性能とビジュアルの改善幅は、各シーンの配置やほかの処理の分量によっても異なってきます。

レイトレーシング用ハードを実装した初のコンシューマ向けグラフィクスカード｢RTX 2000｣シリーズの登場で、リアルタイム・レンダリングもいよいよ本格始動ですね。 影も、反射も、光の表現はゲームに昔からあるものですけれど、近似のシミュレーションに頼ることなく、粒子1個1個を正しく計算し、リアルタイムで再現できるところまで到達しました。

RTXシリーズは9月20日発売。14日発売の対応ゲーム『シャドウオブザトゥームレイダー』もまだリアルタイムトレーシングでは遊べなくて、PC WorldがNvidiaに聞いた話によると、MicrofoftのDirectX Raytracing APIがないと動作しないので、リリースまで1カ月ほどおあずけとのことです。

まだ対応するゲームが少ないのが玉にキズですが、レイトレーシング革命は一夜にして成らず。そのうち増えていくだろうし、徐々に盛りあがっていきそうですね。