NVIDIA GTC 2019のジェンスン・フアンCEOによる基調講演のなかで、id Softwareが1997年にリリースしたFPSゲーム「Quake II」のリアルタイムレイトレーシング対応リメイク版「Quake II RTX」がデモされ、一部で話題を呼んでいる。

1997年前後の3Dゲームに使われたAPIと言えば、3dfxの「Glide」か、Microsoftの「Direct3D」だった。ところがQuake IIは「OpenGL」に対応していた。当時、コンシューマ向けでOpenGLを実用的な速度で動作させるのは難しく、Quake IIを快適にプレイできるビデオカードは少なかった。

そのなかでも、NVIDIAの「RIVA 128」はスムーズにQuake IIが動作した。このためQuake IIはRIVA 128のキラーアプリとなった。フアンCEOも「Quake IIがなければ今日(こんにち)のNVIDIAはない」と振り返る。

さて、そのQuake IIのゲームエンジンは、2001年にGPLオープンソース化されており、ソースコードの研究/改変、および再配布の自由などが認められている。NVIDIAのインターン生だった独・カールスルーエ工科大学の学生、Christoph Schied氏は、2019年1月にレイトレーシング技法「パストレース」を取り入れた「Q2VKPT」を開発し、公開した。

Q2VKPTに使われているパストレースは、影や反射などのすべての照明効果を単一の純粋な光線追跡アルゴリズムに統合する計算集約型のレイトレーシング手法である。しかしこの手法では、ランダムサンプリングアルゴリズムを採用しているため、粒のように見える問題があった。Christoph氏はNVIDIAでのインターンシップのあいだ、複数のフレームを組み合わせる時間的アンチエイリアシング手法を編み出し、粒状感を高速に取り除くことに成功、1月の公開に踏み切っている。

リリース後まもなくNVIDIAは、Christoph氏とともに働いていた自社のレイトレーシングの専門家に、Christoph氏とさらなる共創ができないかと働きかけたところ、同氏からも許諾を得ることができ、今回のGTC 2019でQuake II RTXのデモに漕ぎつけたのだという。

Quake II RTXのユニークなところは、MicrosoftのDirectX Raytracing(DXR)ではなく、Vulkanのレンダラーで実現されている点である。この実現には、NVIDIAの「VKRay」(VK_NV_ray_tracing)と呼ばれるVulkanの拡張機能が使われている。VKRay自体はすでに開発者向けサイトでサンプルコードやチュートリアルなどが用意されている。

初代のQuake IIは、レイトレーシングによって事前に作成された拡散ライトマップ技法が使われており、リアルではあったものの静的なものであった。しかしQuake II RTXはすべてがリアルタイムで計算されており、物理ベースの反射、光の屈折、放射性テクスチャ、ハード/ソフトシェア、間接拡散照明、ダイナミックな光エフェクトなどが実現されている。

Quake II RTXは現在開発の最終段階に入っており、4月にもNVIDIAからLinux向けのソースコードなどが提供される予定だ。初代Quake IIを所持しているユーザーなら、そこからマップデータだけを抜けば、リアルタイムレイトレーシングが有効化されたグラフィックスでQuake IIを楽しめるようになるだろう。