連載
[GDC 2018]西川善司の3DGE:DirectX RaytracingにRTX,Optix,ProRenderにRadeon Rays。“レイトレだらけ”の状況をすっきりさせてみる
対するAMDは,GDC 2018のタイミングでこれといった発表こそ行っていないものの,レイトレーシングエンジン「Radeon ProRender」と,関連するレイ投射システム「Radeon Rays」をすでに持っている(関連記事)。
こうやって並べてみると,さながら群雄割拠であって,何と何が関連しているのかすらよく分からなくなってきたという読者も少なくないのではなかろうか。……ということで今回は,突如として次世代の3Dグラフィックス技術として本命視されるに至ったレイトレーシングについて,その現状を整理してみたい。
NVIDIAのRTXとOptixは何が違う? なぜRTXはVoltaでしか動かない?
まずはNVIDIA側の状況整理から入ろうと思うが,大前提として,DXRとRTXは競合するものではないということを押さえておく必要がある。
DXRは,Windows 10環境にあるDirectXフレームワークの中でレイトレーシングを行うためのフロントエンドを務める存在だ。そのため,実際にGPUを駆動してレイトレーシングを行う機能はGPUベンダーがドライバモジュールとして提供することになるが,このドライバモジュールに相当するのがRTXなのだ。
つまり,DXRを使って開発されたソフトウェアがNVIDIA製GPU搭載システム上で動作するときはRTXが動いて機能を果たすということになる。
では,そんなRTXの正体は何かだが,「コア技術はOptiXそのもの」だと筆者は見ている。
Optixは,NVIDIA製GPUベースのGPGPUフレームワークである「CUDA」で動作するレイトレーシングエンジンだ。というか,レイトレーシングに必要な処理系をすべて備えているので,「エンジン」ではなく「スイート」と呼んだほうが正確かもしれない。
GDC 2018で業界関係者に聞き込んで得た情報を総合するに,どうやらDXRは,Optixのアーキテクチャを基にしたサブセット的なものとして設計されたようである。ただ,繰り返すがあくまでもDXRは抽象化レイヤーに相当するフロントエンド的な存在なので,実際に特定のGPUを駆動するためのソフトウェアモジュールは有していない。
そして,そんなOptiXが持つレイトレーサーのコア部分をDXRの仕様に合わせて最適化し,CUDAベースのソフトウェアとしてではなく,性能を稼ぐためVolta世代のGPUへ最適化してネイティブ動作させることにしたのがRTXとなる。付け加えると,NVIDIAのエンジニアいわく,現バージョンのRTXはVolta世代のGPUが搭載するTensor Coreも動員する設計になっているとのことだ。
OptixはCUDAベースで,NVIDIA製GPUに広く対応するはずなのに,同じアーキテクチャを採用するはずのRTXがGPUをVolta世代に限定している理由はここにある。
なら,現行のGeForceが採用するPascalアーキテクチャやそれ以前のGPUでRTXが利用できないかと言うと,必ずしもそうではない。DXRはフォールバックシステムを採用する予定なので,ワーストケースではCPUベースのレイトレーシングエンジンが動作するはずだ(笑)。
冗談を抜きにすると,Pascal世代以前のGPU対しては,「CUDAベースであるOptixのレイトレーシングエンジンをDXR仕様に合わせたもの」が提供されるのではないか。筆者はそう考えている。
AMDはDXRにどう対応するのか
一方のAMDだが,DXRの出自が出自だからなのか,公式には現在のところ,無言である。
今回のGDC 2018で筆者は,AMDでゲームデベロッパ支援を担当しているISV RelationsチームのFrank Vitzディレクターにインタビューする機会を得たのだが,「DXRに対するAMDの動きは?」という質問に対する氏の回答は「現在のところ,DXR対応に関する明快な回答を持ち合わせていない。ただ,対応していくことだけは間違いない」というものに留まっている。
ただ筆者は,別のAMD関係者から,「Radeon RaysをDXRへ対応させることになるのではないか」というコメントを引き出すことができた。実際,Radeon ProRenderとRadeon Raysのコアモジュールから必要な部分を取り出し,DXR対応ラッパーを被せて動作させるのが最も手っ取り早い対応策になるのではないかとは,筆者も思う。
しかし,そこで懸念されるのは性能面だ。Radeon ProRenderもRadeon RaysもOpenCLベースの実装なので,「動作にRadeonやRadeon Proが必要」という制限はなく,CPUでも,NVIDIA製GPUでも実行できる。それこそFuturemarkが予告しているような「DXRの性能評価ベンチマーク」における競合との戦いを想定した場合には,異なるアプローチが迫られるのではないかという気はする。
AMDのレイトレーシング技術自体は業界でもトップレベルの先進性があるが,ことにDXR対応ということになると,NVIDIAに対して少し遅れることになるかもしれない。
レイトレーシングソリューションが,NVIDIAとAMDの新たな戦場か
DirectXが進化してきた歴史の過程で,DirectXのジャンプアップ時にNVIDIAとAMD(もしくはAMDが買収する前のATI Technologies)どちらの技術をベースにして取り組むかにより,「採用されなかった側の対策」が遅れることはこれまでもあった。たとえば,DirectX 9.0cのVTF(Vertex Texture Fetching)はNVIDIAの技術ベースだったため,ATI Technologies側の対応は遅れに遅れた。一方,DirectX 11におけるテッセレーションステージのアーキテクチャはATI Technoligiesのそれをベースとしていたため,性能面でNVIDIAは長きにわたって遅れを取ることになった過去がある。
その意味において,DXRがNVIDIAベースの技術を採用している以上,NVIDIAの動きが速く,AMDがそうでないというのは,「まあそうなるよね」という話以上でも以下でもない。AMDが早急にキャッチアップしてくれば,DXRがNVIDIAとAMDの新しい“戦場”ということになるだろう。
ただ,歴史を振り返ってみると,2大GPUメーカーの足並みが揃わなかったVTFやテッセレーション技術はその後,あまり採用が進まなかったりもしている。さて,今回のDXRは……?
[GDC 2018]ついにDirectXがレイトレーシングパイプラインを統合。「DirectX Raytracing」が立ち上がる
[GDC 2018]NVIDIA,ゲーム向けのリアルタイムレイトレーシング技術「RTX」を発表
[GDC 2018][西川善司の3DGE]DirectX Raytracingでゲームグラフィックスは何が変わるのか。「Quantum Break」のRemadyが示す,その方向性
[GDC 2018]Futuremark,「DirectX Raytracing」ベースとなるリアルタイム技術デモのムービーを公開
4GamerのGDC 2018記事一覧
- 関連タイトル:
DirectX
- この記事のURL: