レイ トレーシング、ご質問への回答: レイ トレーシングの種類、GeForce GPU でのパフォーマンスなど

執筆者: Andrew Burnes 投稿日: 2019年4月11日 | GeForce GTX GPUs GeForce RTX GPUs Featured Stories NVIDIA RTX Ray Tracing

リアルタイム レイトレーシングは、コンピューター グラフィックスにおける長年の飛躍的な進歩です。リアルなライティング、シャドウ、エフェクトをゲームに与えて、画質、ゲームプレイ、没入感を高めます。今年の Game Developer’s Conference、Unreal Engine と Unity は、エンジンへの統合の発表とリリースを行い、大勢の開発者はレイ トレーシング パネル ディスカッションに参加しました。いくつかのスタジオは最新のレイ トレーシングが実装されたゲームビルドのデモンストレーションや、このようにレイ トレーシングがゲーム開発に役立つかに関する洞察を共有しました。

これらすべての原動力となったのは、RT コアを搭載した GeForce RTX GPU です。RT コアは、高解像度で忠実度の高いレイ トレーシングをリアルタイムで実行するのに必要なパフォーマンスを提供するために設計された専用ハードウェアです。

GeForce RTX GPU のリリース以来、私たちはレイ トレーシングの最適化と強化を続け、開発者が彼らのゲームのレイ トレーシング性能を向上させるのを支援してきました。 これらの取り組みは、すべての GeForce RTX を持つゲーマーのためにレイ トレーシング パフォーマンスを向上しただけでなく、新しい Game Ready ドライバーを用いて GeForce GTX 1060 6GB 以上の GPU にて DirectX レイ トレーシング (DXR) の基本的な効果をテストできるようになりました。

Pascal GPU と Turing GPU を搭載したノート PC でも DXR を有効にできます。

DXR サポートのアップデートを発表したときに、DXR のテクノロジとパフォーマンスに関してコミュニティから多くの質問がありました。 以下の詳細な説明は、コミュニティからの質問に答えることを目的としていますが、さらに質問がある場合は、こちらからお問い合わせください。

GeForce RTX と GTX のパフォーマンス

先月、GeForce GTX GPU への DXR の対応について発表したとき、多くの皆さんはレイ トレーシングを有効にした時にこれらの GPU がどのように動作するか尋ねました。 手短かに言うと、ゲームの一般的なパフォーマンス レベル、レンダリング解像度、ゲーム設定、ゲームで使用されるレイ トレーシングの種類、および選択したレイ トレーシングの品質レベルによって大きく異なります。

何が起こっているのか、そしてそれがパフォーマンスにどのように影響するのかを理解するには、レイ トレーシングの短期速習講座を受ける必要があります。

レイ トレーシングは、GPU が実行するいくつかの新しいワークロード (タスク) を導入します。 1 つ目は、レイ (光線) がゲーム シーン内のどの三角形 (ジオメトリックプ リミティブ) と交差するかを決定することです。 バウンディング ボリューム階層 (BVH) と呼ばれるツリー型のレイ トレーシングを高速化する構造を使用して、レイと三角形が交差する場所を計算します。

BVH は必要とされるレイ/プリミティブの交差テストの回数を減らしますが、それでもなお非常に計算負荷の大きいプロセスです。 BVH の探索および他のレイ トレーシング操作が完了した後、ノイズ除去アルゴリズムを適用して出来上がった画像の視覚的品質を改善します。 ノイズ除去はまた、レイの投射数をより少なくできるので、ゲームをプレイ可能なフレーム レートでリアルタイムにレイ トレーシングを実行できるようになります。(基本的なレイ トレーシング メカニズムについては、 NVIDIA Turing GPU Architecture Whitepaper の Appendix D をご覧ください。)

GeForce RTX GPU が採用している Turing アーキテクチャは、DXR のワークロードに向けて初めから設計されました。 一方、2016 年に発売された Pascal は、DirectX 12 用に設計されました。そのため、Pascal やそれ以前の世代の GPU はTuring のようには設計されていません。

GeForce RTX GPU に搭載されている RT コアは、BVH 探索とレイ/三角形の交差計算を高速化するための専用ハードウェアであり、レイ トレーシングの処理を劇的に高速化します。 GeForce GTX ハードウェアでは、これらの計算はプログラマブル シェーダ コアで実行されます。これは、GPU の他の多くのグラフィックス機能と共有されるリソースです。

これが実際に何を意味するのかを見るために、レイ トレーシング グローバル イルミネーションを特徴とする『Metro Exodus』でのゲームプレイ中の 1 フレームを調べてみましょう:

このグラフは Pascal、 RT コアを無効にした Turing (特別なソフトウェア設定による) と、RT コアと DLSS を有効にした Turing での GPU 使用率を表しています。

Pascal アーキテクチャの GPU では、レイ トレーシングおよび他のすべてのグラフィックス レンダリング タスクは FP32 Pascal シェーダ コアによって処理されることがわかります。 これは実行に時間がかかり、ゲーマーが低いフレームレートを体験することを意味します。Turing アーキテクチャでは FP32 コアと同時に動作する INT32 コアが導入され、フレーム時間の短縮に役立っています。さらに、RT コアと Tensor コアを使用することで、実行時間が大幅に短縮され、ゲーム内のパフォーマンスが 2 〜 3 倍速くなっています。

GeForce RTX GPU で RT コアと Tensor コアを使用したときの『Metro Exodus』のフレームのクローズアップ

ゲームにレイ トレーシングを実装するには、リフレクション、シャドウ、ライティング (グローバル イルミネーション)、アンビエント オクルージョン、コースティクス、さらにはフル シーン パス トレースまで、さまざまな方法があります。 また、それぞれの方法によって異なるパフォーマンス要件があります。

レイトレーシング リフレクション

ゲームにリアルタイム レイ トレーシングが導入されるまでは、利用可能な最良のリフレクション技術はスクリーン スペース リフレクション (SSR) でした。 開発者は SSR とキューブマップなどのテクニックを組み合わせることで、もっともらしいリフレクションのシステムを作ることができましたが、スクリーン外の情報を反映できない、小さい角度から見た情報を反映できない、画面上の隠れた部分の情報を反映できないといった、SSR が抱える問題を克服できませんでした。

レイトレーシング リフレクションは、これらすべての問題を解決します。プレイヤーやカメラの前後上下の情報を反映したリフレクションを、高解像度のフルシーンで生成します。これは、以前の技術では見ることができないものです。

Battlefield™ V』は、レイトレーシング リフレクションに対応した初めてのゲームです。DICE による実装では、水やガラスのような反射面にリフレクションが選択的に適用されています。

レイは、プレイヤーのカメラからシーン全体に投げられるのではなく、プレイヤーのカメラから見える範囲の反射面に向けて投射されます。 これによって必要なレイの数が大幅に減り、パフォーマンスを向上することができます。

GeForce RTX および GeForce GTX GPU 上の『Battlefield V』 2560x1440 Ultra DXR パフォーマンス

4K および 1920x1080 の性能を参照するにはグラフをクリック

高度なレイトレーシング リフレクション

開発者がレイトレーシング リフレクションを一段階高めたい場合は、より複雑なシーンで追加のリフレクションを追跡することで、曲面または不完全な面のリフレクションをレンダリングすることができます。 これを行うとレイの数が急激に増え、追跡は複雑になり、シェーディングが困難になります。レイが複数のバウンスで異なる方向に散乱するためです。

高度なリフレクションの典型的な例は、無限に反射するホール オブ ミラー効果です。これは、従来のスクリーン スペース リフレクション技術では不可能です。

これらの効果を使用したシーンを構築するには、高度なレイトレーシング リフレクションが必要です。各交差ポイントで追加の反射レイを使用することでレイ トレーシングの負荷は大幅に増加します。

『Atomic Heart』とReflections RTX 技術デモ、および『3DMark Port Royal』 はレイトレーシング リフレクションに対応し、RT コアがスムーズなフレームレートを実現しています。

レイトレース シャドウ

近年、ゲームのシャドウ技術は大きく進歩し、多くの機能が追加され、現実世界での影の外観に近づいています。 リアルタイム レイトレーシングが登場するまでは、NVIDIA HFTS (Hybrid Frustum Traced Shadows) 技術が最も品質が高いのですが、結局ラスタライズによる技術は、影がどのように見えるかを模倣するための巧妙にプログラムされたトリックでした。

開発者は、シャドウ エイリアシング、シャドウ アクネ (誤ったセルフシャドウイング)、シャドウ デタッチメント (オブジェクトの設置面と影が完全に繋がっていない) が出ないようにしながら、伝統的なシャドウ マップのプロパティを注意深く調整して精度、詳細度および表示範囲を最大化する必要がありました。

結局のところ、常にトレードオフまたは没入感を損なう目に見える問題がありました。 しかしレイ トレーシングでは、これらの問題を心配する必要はありません。 その代わりに、シーン全体にレイを放ち、光を遮断するキャラクター、オブジェクト、葉を現実的に考慮してリアルな影を作り出します。そして、正確な影を追加するだけでなく、これまで不可能だった詳細度で、大規模で複雑なインタラクションとリアルタイムの半透明シャドウイングに初めて対応することができます。

3DMark Port Royal』、『Atomic Heart』 の RTX 技術デモ、『Control』、『Justice』 RTX 技術デモ、『シャドウ オブ ザ トゥームレイダー』、 Reflections RTX 技術デモはすべてレイトレース シャドウに対応しています。

『シャドウ オブ ザ トゥームレイダー』では、 レイ トレーシングによる 5 つのシャドウ テクニックが採用されましたが、それらは伝統的なテクニックではレンダリングすることが不可能でした。

最も低いレイ トレーシング プリセットである「中」では、ろうそくなどの稀に見るポイント ライトにのみにレイ トレーシングが最小限に適用されます。このため、追加のレイトレーシングによるシャドウがゲームのすべてのレベルに渡ってレンダリングされ、リアリズムに絶え間なく影響を与える「高」をお勧めします。

レイ トレーシング シャドウの難しさは、ライトの数と種類、さらにはシャドウを発生させるオブジェクトの複雑さとともに増加します。 単一点に対しても、正しい影を表示するには、異なる角度にあるライトを別々にトレースする必要があります。角度と光が多いほど、必要なレイの数が増加します。

「高」 DXR 設定を使用した、 『シャドウ オブ ザ トゥームレイダー』でのレイトレーシング シャドウのパフォーマンスを以下のグラフに示します。

GeForce RTX および GeForce GTX GPU での 『シャドウ オブ ザ トゥームレイダー』2560x1440 の「高」DXR パフォーマンス

4K および 1920x1080 の性能を参照するにはグラフをクリック

レイトレーシング グローバル イルミネーション

GeForce RTX GPU のリアルタイム レイ トレーシング機能により、シーン内のサーフェスから跳ね返る光の効果をより正確にモデル化することができ、開発者は自分のゲームにレイトレース間接拡散グローバル イルミネーションを追加することができます。

「グローバル イルミネーション」という用語に馴染みがないのであれば、あるサーフェスから別のサーフェスへの光の跳ね返りによる間接的な影響も含めて、シーン内のすべてのライトの相互作用を計算するプロセスと説明することができます。これまでライティングには、事前計算されたライトマップ、イメージベースド ライト プローブ、球面調和関数、リフレクティブ シャドウマップ、更にはこれらの手法ではうまくいかない場合に、強制的にアーティストがライトの配置を設定するのが一般的でした。

これらのテクニックにはいくつかの欠点がありましたが、最も大きなものは、動的な照明が光が当たった領域を超えて跳ねたり照らされなかったことです。

たとえば、窓から輝く明るい光で照らされている暗い部屋を想像してみてください。 従来のテクニックでは、光が直接当たる部分はすべて照らされますが、照らされた部分自体は光を反射せず、実際には周囲のゲーム要素を照らしません。

レイ トレーシングを使用すると、シーン内のサーフェスにて跳ね返った動的な間接拡散照明をより正確にモデル化することができます。 これにより開発者はゲームの世界で照明の変化やイベントが発生したときにリアルタイムで更新される、より現実的な間接照明を使用した動的なシーンを作成できます。

言い換えれば、光は自然に跳ね返り、周囲の細部を照らし、明るくします。 そして太陽が動いたり窓が開いたりすると、部屋の照明は現実的に変化します。 全く新しい光の中で部屋を見ることができます。

Metro Exodus』は、リアルタイムのレイトレーシング グローバル イルミネーション テクノロジを採用した初めてのゲームであり、開発会社の 4A Games は、動的なシーンをより現実的な間接拡散照明で作成し、照明の変化やイベントの発生に応じてリアルタイムで更新します。

『Metro Exodus』ではレイはピクセルごとに投射されるため 、レイをより選択的に投射することができるレイトレーシング リフレクションよりも、レイトレーシング グローバル イルミネーションはより高い性能を要求します。 技術的サイト DigitalFoundry によると、「レイ トレーシングは実に壮観な「次のレベル」のムードを提供する」と述べています。

GeForce GTX GPU の場合、RTGI によって付加されるワークロードはパフォーマンスに大きな影響を及ぼします。

GeForce RTX および GeForce GTX GPU での『Metro Exodus』2560x1440 Ultra DXR パフォーマンス

4K および 1920x1080 の性能を参照するにはグラフをクリック

レイトレース コースティクス

コースティクスとは、曲面または物体によって反射または屈折された光の集束や、別の面への光の集まりの投影を指します。 これは、水面に差し込んだ光が波によって曲げられて、明るい部分と暗い部分のパターンになることでよく知られています。ゲームでのコースティクスのレンダリングには、見た目良くリアルタイムの結果を達成するために簡略化と近似が必要としました。しかし、これらは正確でも現実的でもありませんでした。

DXR レイ トレーシングによって、開発者はついに現実的なコースティクスをレンダリングできるようになり、『Justice』の開発会社である NetEase が実装しました (詳細については、GDC の『Justice』とコースティクスのセッションをこちらでご覧ください )。

コースティクスに加えて、 『Justice』RTX 技術デモはレイトレーシングによるリフレクションとシャドウにも対応しています。上のビデオで見られるように、シーンの外観を劇的に向上させています。

GeForce RTX および GeForce GTX GPU での『Justice』NVIDIA RTX 技術デモ 2560x1440 DXR パフォーマンス

4K および 1920x1080 の性能を参照するにはグラフをクリック

リアル タイム レイ トレーシング: 勢いは続く

Unreal Engine と Unity はレイ トレーシングの技術とツールを追加し 、世界中の開発者がレイ トレーシングの体験を作成できるようにしました。 Remedy Entertainment は次作である『Control』をレイトレーシングに対応させています。 期待の『Vampire:The Masquerade - Bloodlines 2』は 2020 年のリリース時にレイトレーシングを利用しているでしょう 。 私たちは、クラシックな『Quake II』でレイトレーシングによる機能強化に取り組んでいます。 そして多くの開発者が、今年、来年以降に発売されるゲームにレイ トレーシングを積極的に採用しています。 これらの情報や、その他のレイトレーシングの情報については、 GeForce.com にて続報をお届けします。

それまでの間、NVIDIA RTX テクノロジ デモである『Atomic Heart』、『Justice』、Reflections をダウンロードして、レイ トレーシングがどのようにゲームを向上させることができるかお試しください。

この記事が GeForce GPU での DXR サポートについての質問に対する回答になったことを願っています。 そうでない場合は、 こちらでフォローアップをリクエストしてください。