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コアにテクスチャーを読みだしてもらって精査を実施――このような流れとなる。
この記事に関連するニュース
-
Razer、200HzのUHD+ディスプレイを搭載した18型ゲーミングノート
マイナビニュース / 2024年7月18日 21時13分
-
GPUの「レイトレーシング処理」改良の歴史をひもとく【GeForce RTX 30シリーズ編】
ITmedia PC USER / 2024年7月12日 17時0分
-
ゲーマーとクリエイター向けの高性能ノートPC「Razer Blade」を特別価格で販売する「Razer Blade Mid-Summer Specials '24」を7月6日(土)より開催
@Press / 2024年7月5日 11時0分
-
マウス、GeForce RTX 2050を搭載した15.6型ノートPC「mouse K5」新モデル
マイナビニュース / 2024年7月3日 12時59分
-
サードウェーブがAI時代に向けた新ビジネスPCを一挙発表 7月3日受注開始
ITmedia PC USER / 2024年7月3日 12時15分
ランキング
-
1妻の悲鳴を聞いて駆けつけたら…… 充電中のモバイルバッテリーが発火、真っ黒に焼け焦げたバッテリーに戦慄
ねとらぼ / 2024年7月16日 7時15分
-
2スマホの容量パンパン!じゃあ直付けSDカードリーダーで容量増えやしちゃえ
&GP / 2024年7月18日 6時30分
-
3ナイキならぬニャイキ ロゴマーク「スウッシュ」を全身で表現する猫ちゃん
おたくま経済新聞 / 2024年7月18日 7時0分
-
4「笑み男」の正体はあの名作ADV!35年ぶりのシリーズ完全新作『ファミコン探偵倶楽部 笑み男』8月29日発売決定
インサイド / 2024年7月17日 22時41分
-
5「SNSの英知」 そうめんの巨大空き箱の“天才的な使い道”があまりにも予想外で話題に 「まねしよう」
ねとらぼ / 2024年7月18日 7時0分
複数ページをまたぐ記事です
記事の最終ページでミッション達成してください
![](/pc/img/mission/mission_close_icon.png)