現状のGPU性能では投げられるレイの数が限られ、結果としてノイズだらけの描画となる――そうなると、ゲームグラフィックスにレイトレーシング法を導入するモチベーションが著しく下がるのは間違いない。少し強めにいえば「始まった時点で終わってる」という印象を開発者やユーザーに与えかねない。
そこで、この課題をなんとかしようと立ち上がったのが、GPUメーカーの雄であるNVIDIAやAMDだ。
NVIDIAは、同社製GPUでレイトレーシング技術を実行するためのランタイムとして「NVIDIA RTX」を提供しているが、これとは別にゲーム支援ライブラリ「NVIDIA GameWorks」を構成するコンポーネントとして、レイトレーシング法で描画する際に発生しうるノイズを軽減する「NVIDIA Real-Time Denoisers(NRD)」を用意している。その名の通り、Denoiser(デノイザー)はノイズを除去する技術という意味で、「s」が付いていることからも分かるように複数のデノイザーから構成されている。
同社のノイズ軽減ソリューションとしては、深層学習ベースのAI(人工知能)を活用した「NVIDIA OptiX AI-Accelerated Denoiser」もあるが、これと比べるとNRDは少しシンプルかつリアルタイム性の高いアプローチであることが特徴だ。
2022年10月現在、NRDには「ReBLUR」「SIGMA」「ReLAX」の3種類のデノイザーが含まれている。いずれもレイトレーシング法で生成された描画だけをぼかすような手法を用いているので、従来のラスタライズ法で描画された領域には影響を与えないのが特徴だ。
3つのデノイザーのうち、最も汎用(はんよう)性の高いものがReBLURである。これはNVIDIAのデミトリー・ジダン(Dmitry Zhdan)氏が発表した論文「Fast Denoising with Self Stabilizing Recurrent Blurs」をもとにして開発されたデノイザーで、拡散反射要素や鏡面反射要素を含めた一般的な材質のライティング結果への適用に相性が良いとされている。
実際のゲームタイトルでも、「Cyberpunk 2077」や「WATCH DOGS LEGION」において効果的に使われている。
残り2つのデノイザーだが、SIGMAは影の処理に特化することで処理を高速化したもので、ReLAXは大局照明(間接光照明)の処理に特化したものとなっている。
3つのデノイザーは全て、1ピクセルあたり1レイ以下――例えば2ピクセルあたり1レイ――というような、“低予算”のレイトレーシングにも応用が可能だと説明されている。また、基盤技術は2017年にドイツのカールスルーエ工科大学(当時)のクリストフ・シード氏やNVIDIAのアントン・カプラヤン氏らが共著した論文「Spatiotemporal Variance-Guided Filtering: Real-Time Reconstruction for Path-Traced Global Illumination」で提案された算術的なノイズ低減技術「Spatiotemporal Variance-Guided Filtering(SVGF)」を用いている。Spatiotemporalは「Spatial(空間的な)」と「Temporal(時間的な)の2語が合体してできた単語で、日本語に訳すと「時空間の」という意味になる。SVGFを日本語で直訳すと「時空間の分散を手がかりとしたフィルタリング」といった所だろうか。
SVGFの仕組みをもう少し詳しく見ていこう。
まず「誤差を含むと仮定されるピクセル」があったとする。SVGFでは表示しているフレームにおける当該ピクセルの周辺の情報(≒空間的な情報)を参照して、ピクセルの平滑化に役立てる。加えて、平滑化処理をする際には、過去のフレームにおける当該ピクセルと周辺の情報(≒時間的+空間的な情報)も手がかりとして役立てる。
つまり、SVGFは現在から過去に渡る複数のフレーム群からピクセルのノイズ分散量(ばらつき範囲)を推定し、ノイズの大きい箇所は広範囲に、そうでもない所は狭い範囲で平滑化処理を行う。ノイジーな領域をたっぷりと平滑化すれば、ディテール表現が過剰にボカされることはない――そんな仕組みであり、ある意味で「適応型のノイズ低減技術」ともいえる。
実務的には2D画像を処理する際のアプローチと同様なのだが、実際は「各フレームの各ピクセルがどんな材質(マテリアルID)に対応しているのか」「そのピクセルの奥行き(深度)情報はどうなっているか」といった3Dグラフィックス特有のレンダリング関連情報も参照しているので、いわゆる「2.5D的なフィルタ処理」となる。また、実質的なノイズ低減(平滑化)処理には、「ボカしフィルター」としてもおなじみの「ガウスフィルター」を発展させた「バイラテラルフィルター」に近いアルゴリズムが用いられる。
こうしてSVGFを見てみると、全体的に信号処理的なアルゴリズムとなっていることが分かる。AI的なアルゴリズムではないため、「Tensorコア」のような推論アクセラレーターの搭載は必須ではない。要するに比較的広範囲なGPUで利用できて、互換性も高い(≒GPUへの機種依存性が少ない)ということになる。
NVIDIAによると、NRDの処理スピードは「自社製のハイエンドGPUであれば、フルHD解像度で1ミリ秒程度」という。そこそこ軽量だといえる。
ただし、SVGF(NRD)の処理は1つ1つの描画要素に対して“個別に”行う必要がある。例えばレイトレーシング法で「影」と「鏡像」を生成したとすると、影と鏡像のそれぞれにノイズ低減処理を行うことになる。それぞれの処理に1ミリ秒かかるとすると、2つの処理で合計2ミリ秒を要する計算だ。単純に実装をするとレイトレーシング法による描画要素が増えるほど負荷も上乗せされることになるので注意を要する。
ここまでNVIDIAによると、の取り組みを紹介してきたが、AMDも少ない「レイ予算」のもとレンダリングされたノイジーな描画を美しく仕立て上げるディノーザー「AMD FidelityFX Denoiser(FD)」を提供している。
FDには影専用の「Shadow Denoiser」と、映り込み鏡像専用の「Reflection Denoiser」の2つのデノイザーが用意されており、原理的にはNRDと同様にSVGFベースで実装されている。
いくらデノイザーが優秀だとしても、実際のところは画像処理でボカして処理を入れているだけともいえる。レイ数の多い、正攻法のレイトレーシング法での描画結果と比較すると、どうしても差異は出てしまう。
しかし、ここまでで示してきたデノイザーの適用前後の画像を見比べれば分かると思うが、ゲームグラフィックスに要求される品質としては、必要十分だと考える。先日発表された「GeForce RTX 40シリーズ」、そして11月3日(米国東部夏時間)に発表されるであろうAMDの新型GPUをもってしても、レイトレーシング法で描画できる要素は、4K解像度(3840×2160ピクセル)ならせいぜい1〜2個程度、その際の1ピクセル当たりのレイも数本となる見込みなので、しばらくはノイズ低減技術が欠かせないものとなる。
今後、しばらくは「レイトレーシング向けのノイズ低減技術」は、ホットな研究テーマであり続けるであろう。
次回は、この先のゲームグラフィックスが、レイトレーシングとどう向き合っていくことになるのかについて考えてみたい。
Copyright © ITmedia, Inc. All Rights Reserved.