検索
コラム

GPUの「レイトレーシング処理」改良の歴史をひもとく【GeForce RTX 40シリーズ編】レイトレーシングが変えるゲームグラフィックス(第6回)(1/5 ページ)

主にPCゲームで使われるグラフィックス回りについて解説する連載を、約1年ぶりに再開。3回(予定)に分けて、GPUにおけるリアルタイムレイトレーシング(RT)処理がどのように改良されていったのか見ていこうと思う。今回は、NVIDIAの「GeForce RTX 40シリーズ」における改良だ。

Share
Tweet
LINE
Hatena
※本記事はアフィリエイトプログラムによる収益を得ています

 「レイトレーシングが変えるゲームグラフィックス」というテーマでつづってきた不定期連載。前回は「GPUから見たレイトレーシング」をテーマに、NVIDIAのGeForce RTX 30シリーズにおけるレイトレーシング処理の高速化手法を解説した。

 今回は、同シリーズの後継モデルで、今も現役の「GeForce RTX 40シリーズ」におけるリアルタイムレイトレーシング処理の“最適化”手法をチェックしていきたい。

GeForce RTX 4090
純正グラフィックスカード「GeForce RTX 4090 Founders Edition」(日本未発売)を手にする、NVIDIAのジェンスン・フアンCEO

GeForce RTX 40シリーズは、レイトレの“どこ”を改善しようとした?

 GeForce RTX 40シリーズの開発において、NVIDIAはレイトレーシング性能を向上させるための改良や拡張に対し、“多角的な視点”で取り組んだとされる。

 一体どこがどう多角的なのか……を見ていく前に、説明の都合上「レイトレーシングとは何か?」という基礎を改めて振り返っておきたい(何度も説明していることなので、耳にたこができてしまっている人は、このパートは読み飛ばしても構わない)。

 大ざっぱに言えば、レイトレーシングとは「あるピクセルの色を算定するとき、そのピクセルが受け取っているはずの光の情報を得るために光線(=レイ)を射出して、その軌跡をたどる(=トレースする)処理」のことを指す。下図は、レイトレーシングにおける典型的な3つのパターンを示している。

レイトレーシングの概念図
レイトレーシングの概念図。分かりやすくするために、図ではレイをロケットのイラストで置き換えている(図版はインプレスから発売されている拙著「ゲーム制作者になるための3Dグラフィックス技術 改訂3版」から引用:以下同)

 この図では、レイトレーシングにおけるレイトレース事例を示している。

 図の1-a〜1-cは、「ターゲットのピクセルに光が当たっているか否か」を調べるためのロケット(=レイ)だ。あるピクセルから飛ばしたロケットが光源に到達したら、発射元のピクセルには「光が当たっている」と判断できるので、プログラマブルシェーダー(最近のGeForceなら実務担当は「CUDAコア」)を呼び出して、そのピクセルの陰影具合を演算させるることになる。

 図の2-a〜2-cは、「ターゲットのピクセルが影か否か」を調べるためのロケットだ。飛ばしたロケットが第三者に衝突したのであれば、「発射元のピクセルは第三者に遮蔽(しゃへい)されている」、つまり「影になっている」と判断できるので、発射元のピクセルは暗い色とすることになる。

 そして図の3-a〜3-cは、光が当たっていると判断された発射元のピクセルから、視線の反射方向にもロケットを飛ばしているケースだ。もしも発射元のピクセルが、「テカテカとした金属のような鏡面反射特性の強い材質」だとすると、このロケットが視線の反射方向の第三者に衝突しら、「発射元ピクセルにはその第三者が映り込んでいる」と判断できる。


 レイトレーシングの処理は、上記のように行われる。

 NVIDIAのGeForce RTXシリーズでは、これを「RTコア」と呼ばれるレイトレーシングユニットが担当している。具体的には、ロケット(=レイ)を打ち出す「レイの生成処理」と、ロケットを進める「トラバース(Traverse:横断)処理」、そして衝突判定を行う「インターセクション(Ray-Triangle Intersection:交差)処理」の3つだ。

 なお、実際のライティングやシェーディングの演算は、レイトレーシングにおいてもプログラマブルシェーダー(先述の通り、GeForceシリーズならCUDAコア)が担当する。

 RTコアが行う3つの仕事のうち、特に負荷が高いのがトラバース処理とインターセクションだ。

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る