GPUの「レイトレーシング処理」改良の歴史をひもとく【GeForce RTX 40シリーズ編】:レイトレーシングが変えるゲームグラフィックス(第6回)(4/5 ページ)
主にPCゲームで使われるグラフィックス回りについて解説する連載を、約1年ぶりに再開。3回(予定)に分けて、GPUにおけるリアルタイムレイトレーシング(RT)処理がどのように改良されていったのか見ていこうと思う。今回は、NVIDIAの「GeForce RTX 40シリーズ」における改良だ。
改良ポイント3:Displaced Micro-Mesh Engineの搭載
突然だが、ここで問題。ある3Dシーンのポリゴン数が100倍になった場合、レイトレーシングの処理にかかる負荷はどのくらい増加するだろうか?
単純に考えれば「100倍!」と答えたくなる所だが、実際はそこまで増えないという。NVIDIAによれば、「レイのトラバース処理とインターセクション処理なら、せいぜい2倍程度しか増えない」という。
100倍の数のポリゴンを、わずか2倍の負担増で処理できてしまう――これは、リアルタイムレイトレーシング技術ではBVHを使って3Dシーンを階層として管理しているからだ。
BVHを構成する基本要素は、当該の3Dモデル全体を覆える最小体積の直方体(Box)だ。Boxは3D座標軸に平行/垂直な向きにそろえられた「Axis Aligned Bounding Box(AABB」構造になっており、こうした構造体は「Acceleration Structure(AS)」と呼ばれる。
レイはトラバース(推進)したら、BVHを参照した上で、衝突の有無をAABB単位で判定する。BVHはAABBによる階層構造になっていて、実際の衝突判定は最下層のAABBに含まれるポリゴンに対して行われる。
ポリゴンが100倍となった3Dシーンでは、BVH探索における下層への探索数がより多段化する。しかし、レイのインターセクション処理のほとんどは、上層の方にある粗いAABBであり、「衝突していない」と判定されて素通りできてしまう。逆に、深い階層までBVHの探索が及ぶのは、「衝突している」と判定されるレイだけとなる。
ゆえに、ポリゴンが100倍になったとしても、レイのトラバース処理時間とインターセクション処理時間まで100倍になることはないのだ。
BVHによる探索アルゴリズムでは、レイが衝突した3Dモデルの1ポリゴンまでを突き止める。しかし、多くのレイは上層のAABBにおいて“非衝突”と判定され、素通りされる。同じ3Dシーンなら、どれだけポリゴンが増えても非衝突率はそれほど増えない。ただし、ポリゴンが増えた場合、縦方向の探索の“深さ”は増すので、衝突判定にかかる負荷はそれなりに大きくなる
一方で、NVIDIAはこうも主張している。
3Dシーンの複雑性(≒ポリゴン数)が増加した場合、レイトレーシングの処理系において、最もリニアに負荷が増大してしまうのは「BVHの生成に要する時間」と、「BVHが消費するグラフィックスメモリの容量」だ。
この課題に対処するために、NVIDIAはGeForce RTX 40シリーズのRTコアに「BVH探索の高速化」「BVH容量のコンパクト化」を実現し、ひいては「多ポリゴンの3Dシーンにおけるレイの交差判定の高効率化」を実現するための機構を統合した。「Displaced Micro-Mesh Engine(DMME)」だ。
結論から言うと、DMMEが実現する「Displaced Micro-Mesh(DMM:変移マイクロメッシュ)」の着想や発想の起点は、先述のOMとよく似ている。
DMMを活用する際は、3Dシーンを構成する3Dオブジェクトを構成するポリゴンを「低ポリゴン3Dモデル」と、ディテール表現に相当するDMMに“あらかじめ”分離しておく必要がある。
「そもそもDMMって何だよ?」というところだが、イメージ的にはDirectX 11で追加された「テッセレーションステージ」という仕組みにおいて利用できるようになった、「ディスプレースメントマッピング(Displacement Mapping)」で取り扱われる「ディスプレースメントマップ(Displacement Map)」というテクスチャーの概念とほぼ同じだ。
ディスプレースメントマップとは、3Dモデル上のディテール表現を「盛っている」か「掘ってる」かの分布図、言い換えれば「デコボコの変移量」としてテクスチャーマップにしたものだ。
ディスプレースメントマッピングでは、まずテッセレーションステージにおいて、低ポリゴンの3Dモデルを多数のポリゴンに分解する(この処理を「テッセレーション」という)。その後、分解されたポリゴンに対して、ディスプレースメントマップの起伏の変化量に応じて3Dモデルを盛ったり掘ったりして、ディテールを加えていく。
ディスプレースメントマッピングの概念図。少ポリゴンの3Dモデル(左)に対してテッセレーションを行い、多ポリゴンのモデルを生成する(中央)。そこに起伏の変位量を記載したテクスチャーであるディスプレースメントマップを加えて、多ポリゴンモデルを完成形(右)に持っていくという仕組みだ
GeForce RTX 40シリーズのDMMEが取り扱うDMMは、ディティールの表現に使われるもので、事実上テクスチャーのようなものだ。しかし実態としては微細な三角形を使って起伏を表現している。前段で「OMは仮想的なマイクロポリゴン」だと説明をしたが、OMの起伏情報バージョンがDMMだと考えればいい。
ということで、DMMEを活用した場合、BVH自体を低ポリゴンの3Dモデルベースで生成することができるようになり、最終的なインターセクション判定の時にのみDMMEを活用して衝突先のポリゴンを特定する――というような、多段インターセクションパイプラインになるということである。
この仕組みは、最終的なインターセクション判定自体は複雑化するものの、BVH自体を低ポリゴンの3Dモデルで実践出来ることから、BVHの占有メモリー容量は削減でき、なおかつ「BVHの部分更新速度」や「レイのトラバース効率」の向上も期待できる。
それでは、このDMMEをを絡めた、レイのインターセクション処理はどういう流れで行われるのだろうか。順を追って解説する。
基本的にレイの探索は、低ポリゴン3DモデルからなるBVHに対して行われる。もしもレイがBVH上層の粗いAABBにヒットしていると判定され、最終的に低ポリゴン3Dモデルを構成する1つのポリゴンまで行き着いたとする。
すると、ここでDMMEが登場する。DMMは、レイが衝突したポリゴンの位置に対応するDMM上の起伏情報を読み出し、衝突した箇所のディテール情報を“補正”する。言い換えると、レイのぶつかった場所を「低ポリゴン3Dモデル上の1ポリゴン」から「多ポリゴン3Dモデル上の1ポリゴン」に修正するわけだ。
GeForce RTX 30シリーズまでのレイとポリゴンの衝突判定メカニズムで、下段がGeForce RTX 40シリーズの衝突判定メカニズムだ。粗いBVHでまず衝突判定を取り、DMMを参照してを参照して正しい位置へと修正する流れとなる
NVIDIAがDMMEを使わない場合と使う場合で3Dモデルのレンダリングパフォーマンスを比較したところ、BVHの生成/更新速度は8〜15倍に高速化された一方で、BVHのデータサイズは6〜20倍も小さくできたそうだ。
ちなみに、OMEと同様に、現時点ではDMMEもDirectX Raytracingから利用できない。既存ゲームに対して自動で機能するものではなく、使うには、個別に対応が必要となる。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
GPUの「レイトレーシング処理」改良の歴史をひもとく【GeForce RTX 30シリーズ編】
主にPCゲームで使われるグラフィックス回りについて解説する連載を、約1年ぶりに再開。3回(予定)に分けて、GPUにおけるリアルタイムレイトレーシング(RT)処理がどのように改良されていったのか見ていこうと思う。今回は、NVIDIAの「GeForce RTX 30シリーズ」における改良だ。
2035年、ゲームグラフィックスは「オール・パストレーシング時代」へ――レイトレーシング技術の“先”を見つめる
レイトレーシング技術は、ゲームグラフィックスの世界に革命をもたらした……のだが、GPUの性能的にはまだ“完璧”とは言いがたい面もある。いつになったら完璧になるのか――2035年にその瞬間が訪れるという説がある。どういうことなのか、解説していく。
「レイトレーシング」の最大の“敵”とは何か? やっつける方法はあるのか?
ゲームグラフィックスにおいて市民権を得つつある「リアルタイムレイトレーシング」。ただ、その活用が進むにつれて、品質面において新しい課題が見受けられるようになってきた。その課題を乗り越える方法はあるのだろうか……? 解説する。
ゲームの中で「レイトレーシング」はどう使われる? 実例を見てみよう
最新ゲーム機が対応したことで注目を集めている「レイトレーシング」という言葉。前回の記事ではその技術的概要を紹介したが、RT(リアルタイムレイトレーシング)の黎明(れいめい)期に登場したデモプログラムや現在のゲームを通して、この記事ではレイトレーシングがゲームのグラフィックスにどのように使われているのかチェックしていく。
最近よく聞く「レイトレーシング」 一体ナニモノ?
エントリークラスの独立(外部)GPUだけでなく最新のゲーム機にも広がってきた「リアルタイムレイトレーシング(RT)」への対応。リアルタイムはともかく、「レイトレーシング」とは一体何なのか? 簡単に解説する。

