1. トップ
  2. 新着ニュース
  3. IT
  4. パソコン

GPUの「レイトレーシング処理」改良の歴史をひもとく【GeForce RTX 40シリーズ編】

ITmedia PC USER / 2024年7月18日 19時30分

 BVH自体は、低ポリゴンの3Dモデルベースで生成されたり更新されたりするので、その生成は劇的な速度で行え、さらにはグラフィックスメモリの占有容量もかなり抑えられる――そういうからくりだ。

 それでは、このDMMEをを絡めた、レイのインターセクション処理はどういう流れで行われるのだろうか。順を追って解説する。

 基本的にレイの探索は、低ポリゴン3DモデルからなるBVHに対して行われる。もしもレイがBVH上層の粗いAABBにヒットしていると判定され、最終的に低ポリゴン3Dモデルを構成する1つのポリゴンまで行き着いたとする。

 すると、ここでDMMEが登場する。DMMは、レイが衝突したポリゴンの位置に対応するDMM上の起伏情報を読み出し、衝突した箇所のディテール情報を“補正”する。言い換えると、レイのぶつかった場所を「低ポリゴン3Dモデル上の1ポリゴン」から「多ポリゴン3Dモデル上の1ポリゴン」に修正するわけだ。

 NVIDIAがDMMEを使わない場合と使う場合で3Dモデルのレンダリングパフォーマンスを比較したところ、BVHの生成/更新速度は8~15倍に高速化された一方で、BVHのデータサイズは6~20倍も小さくできたそうだ。

 ちなみに、OMEと同様に、現時点ではDMMEもDirectX Raytracingから利用できない。既存ゲームに対して自動で機能するものではなく、使うには、個別に対応が必要となる。

改良ポイント4:Shader Execution Reorderingの搭載

 ここまで3つの改良ポイントは、レイのトラバースやインターセクション処理を高効率化するための取り組みだった。4つ目のポイントは、そことは少し異なる観点からの改良だ。

 レイトレーシング処理では、ピクセルから放たれたレイがポリゴンなどに衝突して交差判定が確定すると、その箇所に対して「ライティング」や「シェーディング」の演算を行う必要がある。レイが光源に到達した場合は、発射元のピクセルでも同様の処理が行われる。

 ライティングやシェーディングに関する演算はRTコアではなく、プログラマブルシェーダーとしての機能を担うCUDAコアで行われる……のだが、問題はレイトレーシング法と、従来的な「ラスタライズ法」では、CUDAコアの使われ方が全く異なるという点にある。

 ラスタライズ法では、ポリゴンがラスタライザーによって、一塊の複数ピクセルに分解される。そして、分解された塊たち“ドバっと”プログラマブルシェーダーに押し込まれる。ラスタライザーによって分解/生成された「一塊の複数ピクセル」は、元々は1枚のポリゴンから誕生したものだから、ほぼ同一の材質のことが多い。

この記事に関連するニュース

トピックスRSS

ランキング

複数ページをまたぐ記事です

記事の最終ページでミッション達成してください