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

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

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

 どういうことか。例を挙げて説明しよう。

 レイが衝突したポリゴンに、「葉っぱ」のテクスチャーが貼られていたとする。ポリゴンは「三角形」であり、葉っぱのテクスチャーは「自由な形状で描かれた図柄のようなもの」だ。葉っぱのテクスチャーにおいて、葉っぱの“実体部分”には緑色の「テクセル(テクスチャーを構成するピクセル)で塗られている。しかし、それ以外の部分は透明として「実態なし」と扱うのが一般的だ。

 仮にレイがポリゴンに衝突したとして、その衝突先が「葉っぱの実体部分」なら、そのレイは「衝突した!」と見なしても問題ないが、葉っぱテクスチャの透明部分にぶつかった場合は、実体がないのだから“素通り”してもらわなければ、おかしなことになる。

 しかし、RTコアでは「レイとポリゴンの衝突」の判定まではできる。しかし、「ポリゴンにどんなテクスチャが貼ってあるのか?」という識別処理までは行えない。

 「ならどうするの?」というところだが、この処理はテクスチャーユニットを子分に従えているプログラマブルシェーダー(CUDAコア)に頼むしかない……のだが、肝心のプログラマブルシェーダーは通常、多数がラスタライズ法の描画のために動員されていて忙しい。レイとポリゴンの衝突を検出する度に、RTコアが「このポリゴンが透明なのかどうか調べて!」とCUDAコアにお願いしても、CUDAコアはすぐに動けないことが多々あるのだ。

 そこでNVIDIAは、CUDAコアにテクスチャの判定を“外注”する頻度を可能な限り減らすための仕組みを考えた。「Opacity Micromap Engine(OME)」だ。

 OMEは、レイのぶつかったポリゴンが「確実に透明」「確実に不透明」「不明(透明なのかどうか分からない)」という判定を、RTコアが行う仕組みとなる。概念的には「ポリゴンに付帯させるテクスチャーのようなタグ」と考えると分かりやすい。NVIDIAはこれを「Opacity Micromap(OM)」と呼んでいる。

 OMはテクスチャーに近い存在ではあるが、データ量は1要素につき2bitしかない。わずか2bitのデータで、ポリゴンの属性を表現している。

 レイがポリゴンにヒットした際、RTコアはポリゴンに付与されたOMを参照し、その後レイをどうするのかを決める。「確実に透明」ならレイを素通りさせ、「確実に不透明」なら衝突と判定してから次の処遇を決める。「不明」の場合は、これまで通りにCUDAコアにテクスチャーを読みだしてもらって精査を実施――このような流れとなる。

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

トピックスRSS

ランキング

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

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