公式Twitterアカウントのフォローをお願いします

NVIDIA、グローバルイルミネーションのためのリアルタイムレイトレーシング用API、RTX Global Illumination SDKを公開

ゲーム
この記事は約4分で読めます。
スポンサーリンク

NVIDIAはグローバルイルミネーションのためのSDK、RTX Global Illumination(RTXGI) SDKを公開した。本SDKを利用することで間接光ベイクの時間の短縮や、光のリーク防止、そしてリアルタイムでの間接光の描画を実現可能である。

RTXGIは、Direct X Raytracing(DXR)を利用可能なGPUをサポートしている。

スポンサーリンク

グローバルイルミネーションとは

グローバルイルミネーションとは、広域の光を物理学的、特に光学的に正しく取り扱いよりフォトリアルなレンダリング結果を得るためのレンダリング手法のことである。

直接光が照らしていない領域は、現実において真っ暗にはならず、壁などによって反射した光(間接光)によって照らされており、真っ暗に落ち込むことは稀である。この間接光によってどれくらい照らされているのかの計算に要する時間が、従来では非常に長くがかかっていた。

これらの問題を解決するために、様々な手法が取られていた。古くは事前に(それこそ数時間~数日といった)長い時間をかけて、レイトレーシングを行い、テクスチャにその明るさを書き込む、ライトマップという手法をとっていた。

また昨今では、ライトプローブやリフレクションキャプチャといった、ボリュームを事前に配置して、その空間内にあるものがどのような光に照らされているのかを、事前に、もしくは動的に数秒~数分といった時間をかけて計算する手法がとられている。

しかしこれらの手法では、間接光の計算に著しく時間がかかったり、建物の崩壊など、間接光に大きく影響する地形変化に弱かったり、ライトリークと呼ばれる、本来なら影領域であるはずの領域が明るくなってしまうなどのアーティファクトを引き起こしやすかったりなど、様々な課題を抱えていた。

RTX Global Illumination SDKとは

RTX Global Illumination / © 2020 NVIDIA Corporation

RTX Global Illumination(RTXGI)は、これらの問題を解決するために作られたものである。

基本アルゴリズムは、UnityやUnreal Engineなどのゲームエンジンでも既に採用されているイラディアンスプローブを用いる手法に基づいている。従来のイラディアンスプローブ手法では、ライトのリークが起きやすいという問題があったが、RTXGIはこの問題を解決できている。

アルゴリズム

大きく4段階に分かれている。シーンの編集のみオフライン、すなわち事前に行われ、第2段階目以降はリアルタイムで行われる。

  • シーンの編集
    • ライトプローブのレイアウトをオフラインで実行。
  • プローブからのレイトレーシングと陰影づけ
    • 有効なプローブから関連するボリュームに対しレイトレーシングを行う。
  • プローブの更新
    • レイトレーシング結果を元に、イラディアンス及び、ジオメトリまでの距離をプローブに書き込む。
  • Diffuse(拡散光)GIの描画
    • 間接光とレイトレースが行われたプローブから見えるかどうかの結果を書き込む。

メリット

RTXGIにより、Deferred Shading, Forward Shading問わず、無限回の光線反射を扱え、レイトレーシングを行う。従来の多くのレイトレーシング技術で必要であったノイズ削減処理を行う必要はない。また、ベイクやリークが起こらない、ベイクのためのUV展開が不要、プローブの光漏れ防止のためのアドホックな処理が不要であり、ゲームやエディタで高速にライティングの更新が可能であるため、コンテンツ制作を大幅に効率化可能となる。

資料では、二部屋からなる屋内シーンの間接光の計算をRTXGIを用いておこなったベンチマークを公開している。16384個のProbe、各プローブから144個のレイを飛ばす、FullHD(1920x1080pixel)で行ったところ、Geforce RTX2080 Tiで、たったの2.71ミリ秒で計算できているとのことである。

詳細情報

RTXGI SDKは下記公式ページからダウンロード可能だ。申し込みをすればGitHubから、ソースコードもダウンロードできる。またサンプルコードも充実している。ぜひ試してみよう。

RTXGI SDK公式ページ

RTX Global Illumination
RTX Global Illumination Leveraging the power of ray tracing, the RTX Global Illumination (RTXGI) SDK provides scalable solutions to compute multi-bounce indirec...

技術資料

https://developer.download.nvidia.com/rtx/rtxgi/NVIDIA-RTXGI-03-23-2020-v2.pdf?fdLnMMWJRu431WFsS4utN0gpQ2JhS5L8X5a7UUQb10424WM4mTVOopADXku2EPMmqxiNg1Iy383uD9niSbqjEqiJeNRXfoQmhVviSIs181SRowNzYciyDy2ywNG4CqXQaWkkKoyfOg