マイクロソフトがリアルタイム・レイトレーシングAPI「DirectX Raytracing(DXR)」を発表。映画品質の映像表現をゲームに取り入れる

 

マイクロソフトは3月19日、DirectX 12向けのリアルタイム・レイトレーシングAPI「DirectX Raytracing(DXR)」を発表した。レイトレーシングとは、バーチャル空間内にて光源から発せられる光線の経路から、オブジェクトがどのように見えるかを算出する手法で、さまざまな光の反射を経て物を認識する実世界の環境をシミュレートするものだ。特にリアルな映像表現を必要とする3DCG映画などでは一般的だが膨大な演算量を必要とする。このDXRは、高速フレームレートと低レイテンシーのリアルタイム性が求められるゲームなどの用途に取り入れるために開発された。

EAの技術研究部門SEEDが公開したデモ「Project PICA PICA」

DXRは、4つのコンセプトから成り立っているという。一つ目は、GPUにより最適化された光線の計算と、動的オブジェクトのためのアプリケーションでの効率化による加速構造。二つ目は、光線の起点を求めGPUに送るためのコマンドリストDispatchRays。三つ目は、ray-generation・closest-hit・any-hit・miss shadersといった、HLSLの新たなシェーダータイプ。そして四つ目が、レイトレーシングシェーダーやほかの関連する作業を格納するレイトレーシング・パイプラインステートである。DXRは、基本的には計算的な作業をおこなうものであり、また将来的なハードウェアの汎用化を見据え、DirectX 12の既存のGPUエンジンで利用することができるとのこと。

Direct X SDKに付属するPIX for Windowsは、DXRを提供開始と同時にサポートする

ではDXRは、ゲームにてどのように利用されるのか。現在、ゲームでは3Dグラフィックを2次元的に扱うラスタライズという手法が主流である。バーチャル空間において、モニタに映らない所にあるものや、前後に重なっている後ろの部分、またオブジェクトの背面など見えない部分は、Zバッファやオクルージョンカリングといった手法によりレンダリングを省略して描画コストを抑えているのだ。そしてさらに、シャドウマッピングや環境マッピングなどのエフェクトを加えることで、自然な映像表現を実現している。

しかし、この手法では3Dオブジェクトの情報がモニタに映し出されるたびに失われるため、リアルさを求める上では限界があり、また技術的な技量も求められるという。DXRは、そうした問題を解決するためのものだが、現時点ではScreen Space Reflectionなど既存のレンダリング手法を補足する役割が想定されている。発表では明言されていないが、おそらく現在あるGPU製品のパワーと照らし合わせて現実的な利用法ということなのだろう。ただ、完全なグローバル・イルミネーションなど、ラスタライズでは不可能な表現の実装が見込まれている。そして、いずれはラスタライズに完全に取って代わるだろうとしている。

*Remedyが、自社エンジンNorthlightに組み込んだDXRのデモ映像を公開

DXRは、Unreal EngineやUnity、またEAのFrostbiteやRemedy EntertainmentのNorthlightなど、各スタジオが持つゲームエンジンがサポートする計画だという。また、今回の発表に合わせて、NVIDIAがリアルタイム・レイトレーシング技術「NVIDIA RTX」を発表している。これはDXRと連携して動作するもので、NVIDIAのVoltaおよび次世代アーキテクチャベースのGPU上で実行可能だという。開発者向けにはNVIDIA GameWorks SDKを通じて提供する予定だ。またDXRについては、まずはWindows Insider Programの参加者向けに提供されるようだ。詳しくは公式フォーラムの該当ポストを参照いただきたい。