グラフィックスの再創造: レイ トレーシング、AI、高度なシェーディング機能により、まったく新しいゲーム体験を実現

執筆者: Andrew Burnes 投稿日: 2018年9月27日木曜日 | GeForce RTX GPU 特集記事 Advanced Shading VRS レイ トレーシング NVIDIA RTX Turing DLSS

GeForce RTX グラフィックス カードはこれまでで最速の性能を持ち、最新のゲームで 4K 60 FPS のプレイを体験できます。さらに、将来を見越した新しいテクノロジが含まれているため、視覚的忠実度を上げ、実物のようなグラフィックスを生み出し、新しい体験を可能にしてパフォーマンスをさらに向上する革命的な新しい手法を可能にします。

大まかに言えば、こうした手法は、「NVIDIA RTX レイ トレーシング」、「人工知能 (AI)」、「高精度シェーディング」という 3 つの柱のいずれかに属します。以下では、新しい Turing アーキテクチャで可能となるゲーム関連のあらゆる項目を段階的に説明します。また、それがいかにして今日の業界標準の手法を改善するか、該当する箇所で説明します。

ゲーム向けのリアルタイム レイ トレーシング

画面上で起こるすべてに実物のような忠実度を実現する独自の機能のおかげで、レイ トレーシングは、何十年間もの間、グラフィックスの必須アイテムでした。唯一の問題はパフォーマンスです。高品質の結果を得るには、フレーム毎に何百万ものレイ トレーシング操作が必要になり、各レイ トレーシング操作ごとに、光が当たる物体とそれがシーンの様子にどのように影響を与えるかを計算する必要があります。

そのような計算が CPU の負荷となるため、テレビ番組や映画で普段見るような複雑な特殊効果や仮想世界の制作には、サーバー ファーム全体レベルの処理能力が必要となります。最高品質の映像では、短いシーンのレンダリングに数日かかる場合があります。

現在では、GPU アクセラレーション NVIDIA RTX プラットフォームが開発され、専用の RT コアを備えた GeForce RTX と Quadro RTX GPU が発売されたことで、ハリウッドのレイ トレーシングによる VFX の撮影や世界の制作で劇的は高速化を実現しています。しかし、ゲーム世界での話は別です。ゲームは、最低毎秒 30 フレームのリアルタイムでプレイされ、プレーヤーは瞬時にカメラや画面に表示するものを切り替えたりできます。

そのため、レイ トレーシングが忠実度に大きな影響を与える一方で、ゲームがプレイ不可能なるくらい遅延のない、別の手法が求められます。NVIDIA の解決策が、ハイブリッド レンダリングです。選ばれた特殊効果がレイ トレーシングされ、開発者が何年もかけて丹精込めて作り上げた、高い忠実度でラスタライズされた世界に現実世界のような光、陰影、反射を加えます。

その結果として画質が大幅に向上し、臨場感に溢れたリアルなゲームプレイを可能にし、「Battlefield V」の 64 名のプレーヤーが競う大混乱のマルチプレイでも、滑らかなフレームレートでゲームを楽しむことができます。

レイ トレーシングの反射

NVIDIA RTX エフェクトの良い見本がレイ トレーシングの反射です。新しい GeForce RTX GPU の実力として興奮して友人に見せたくなるのがこの機能です。現 時点では、 Assetto Corsa Competizione」、「Atomic Heart」、「Battlefield V」、「Control」、「MechWarrior 5: Mercenaries」に導入されます。他にもさまざまなゲームが発表される予定です。どのタイトルでも、レイ トレーシングの反射がゲーム全体の画質と臨場感を劇的に向上します。

これまで、利用できた最高の反射テクノロジはスクリーン スペース リフレクション (SSR) と静的環境マップの組み合わせでしたが、この組み合わせでの限界を超えることは、どんなに優れた開発者でも事実上、不可能です。

たとえば、SSR では、画面上の物体 (フレームの他の部分に既に表示されている物体) の反射のみを見せることができます。画面にないものはすべて (カメラの背後も含め)、反射されるべきであっても、実際には低解像度の キューブマップ でごまかすことになります。キューブマップとは、サーフェイス ( オープン ワールド アクション ゲームに出てくる高層ビルの窓など) に適用される、事前に生成された反射イメージです。

この キューブマップ での限界は、シーンの一点からの眺めとして反射環境を表すのみであるため、大きな反射物で物理的にあり得ない結果が生成されます (また、異なる場所の複数の窓に同じ反射が焼き付けられることがよくあり、実際に見渡したときのシーンとまったく異なることがあります)。付近の外観に基づいて一定の間隔で キューブマップ を更新する手法もいくつかありますが、この手法固有の問題を克服するものではない ため、 カメラまたはプレーヤーの背後で、リアルタイムに動く人、車、エフェクトを示す能力に欠けています。

SSR のもう 1 つの大きな問題は、別のアイテムの背後にある大きなアイテムなど、現実では反射に映るはずの遮られた細部が、レンダリングされた反射には表示されません。さらに、プレーヤーが動いたときやカメラを回したとき、あるいは反射されているサーフェイスまたはオブジェクトとプレーヤーの距離が近すぎるときに、反射が消えるという問題もあります。これはすべて、反射する細部が画面から外れることにあります。

NVIDIA RTX レイ トレーシングなら、以上の問題がすべて解決されるだけでなく、シーン全体で高解像度のリアルタイム反射が生成され、プレーヤーまたはカメラの前後と上下の細部が反射されます。

 

このような新しい超高品質の反射を生成するために、プレーヤーのカメラから見えるサーフェイスから「光線」を「投じます」。このような新しい超高品質の反射を生成するために、プレーヤーのカメラから見えるサーフェイスから「光線」を「投じます」。

ただし、写真のようにリアルな映像を作るには、オブジェクトやサーフェイスごとの特性を考慮し、反射する素材か、光を吸収する素材か、表面が粗い素材か滑らかな素材か、透明な素材か、などが判断されます。

次に、反射の中での反射を開発者が望むなら、さらに「バウンス」が用いられ、光が最初に当たる物体の特性に基づき、新しい方向に光線が放たれます。光線がゲーム内の新しい要素に当たると、その交差点の情報が反射に適用され、シーンの外観が適宜更新されます。

そして最後に Fresnel Effect が適用され、オブジェクトとサーフェイスに自然な見た目の反射が与えられます (実際には、ガラス玉の端は 100% 反射となりますが、球体の中心はわずかな光のみを反射します)。この機能なしでは、いかなる反射もすべてのポイントで不自然に光ります。

GeForce RTX グラフィックス カードの「Battlefield V」で体験できる驚異的な反射の 2 つの例

このプロセス全体がミリ秒ごとに数百万回行われ、シーン全体でリアルな反射がリアルタイム生成されます。これを心地よいゲームプレイを可能にする滑らかなフレームレートで可能にするのは RT コアと呼ばれている GeForce RTX のリアルタイム レイ トレーシング ユニットだけです。このユニットはこの目的のためだけに特別に開発されました (詳細については、Turing ホワイトペーパーの 30 ページをご覧ください)。その息をのむような改善ぶりは、他のすべてのゲームの忠実度の基準を上げました。

NVIDIA RTX によるリアルタイム レイ トレーシング反射の驚異的なスクリーンショット、ビデオ、予告編は、「Assetto Corsa Competizione」、「Atomic Heart」、「Battlefield V」、「Control」、「MechWarrior 5: Mercenaries」の特集記事でもご覧いただけます。

レイ トレーシングの拡散反射グローバル イルミネーション

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

「グローバル イルミネーション」という言葉はご存知でしょうか。これはあるシーンにおけるすべての光のやりとりを計算するプロセスを表現したものです。直接的な光があるサーフェスから別のサーフェイスに飛び跳ねる間接的な効果が生まれるのもこのプロセスに含まれます。このプロセスは、「グローバル イルミネーション」が導入される前は一般的に、「Image-Based Light Probes」、「Spherical Harmonics」、「Reflective Shadowmaps」という事前計算のライトマップに加え、前述の手法で失敗した場合に強制的な照明として役立つアーティストが配置した光により一般的に実現されていました。

このような手法にはいくつかの欠点がありました。最大の欠点は、光が当たる領域を超えて動的な照明が跳ね返せない、または照らせないことでした。

たとえば、暗い部屋の窓から明るい光が差し込むシーンを想像してください。従来の手法であれば、光が直接当たる部分はすべて照らされますが、現実の世界でそうであるように、照らされた部分自体が を跳ね返すことはなく、ゲーム内の周辺 要素 を照らすことはありません。

レイ トレーシングが導入され、シーンのサーフェイスにおける 1 つまたは複数の「跳ね返り」による動的かつ間接的な散光をより精確にモデル化できるようになりました。開発者は、照明が変わったとき、また、ゲームの世界でイベントが発生したときにリアルタイムで更新されるよりリアルな間接照明により、ダイナミックなシーンを制作できるようになりました。言い換えると、光が自然に跳ね返り、周囲の細部を照らします。また、太陽が動いたり、ブラインドを開いたりしたとき、部屋の照明が現実世界のように変化します。まったく新しい光で部屋が映し出されます。

2019 年に発売される「Metro Exodus」からのサンプルをご覧ください。

 

高品質のレイ トレーシングされたグローバル イルミネーションに近似させるために、一部の開発者は「ベイク処理」と呼ばれているプロセスを活用しています。このベイキングでは、あるシーンにおける静物に当たる光の効果が計算され、テクスチャに書き込まれ、そのテクスチャがゲームのジオメトリにオーバーレイされます。照明および静的ジオメトリ、または 1 日の時間帯を固定することで、ゲーム内で素晴らしい効果が生まれます。グローバル イルミネーション効果をレンダリングする必要がないため、ゲームプレイ パフォーマンスが改善されます。ただし、ベイク処理された照明では、上の「Metro Exodus」ビデオのブラインドを開ける場面のように、劇的な照明の影響を与える、現実世界の動的変化に対応できません。

また、ベイク処理には時間がかかり、ゲーム ビルドをコンパイルするたびに再実行が必要になります。ベイク処理した照明の繰り返しは、コンテンツ制作プロセスにとって大きな足かせとなることがあります。

それが今、開発者は NVIDIA RTX とレイ トレーシングを使用することで、ベイク処理した照明やアップデートをすぐにプレビューできるようになりました。開発時間が大幅に短縮され、最高の忠実度を求めて調整を繰り返す機会を増やすことができます。結果に満足できたら、レイトレーシングをオフに切り替え、旧式の GPU やその他のプラットフォーム向けに照明をベイク処理できます。

 

Remedy Entertainment の「Control」の開発画像。レイ トレーシングでグローバル イルミネーション照明が改善されています。

リアルタイムのレイ トレーシングの拡散反射グローバル イルミネーションを利用することで、開発者にとって、照明やジオメトリの変化に動的に反応し、光が正しく照らされるリアルな世界を作ることが初めて可能になりました。この効果は「Control」で特に際立っています。形状が変わると同時にシーンの照明が徹底して影響することで、その見た目はかつてない素晴らしさです。また、レイ トレーシングの反射の場合と同様に、ゲームのルック アンド フィールの与える影響は相当なもので、あらゆるゲームに NVIDIA RTX のエフェクトが導入されることを望むようになるでしょう。

レイ トレーシングの拡散反射グローバル イルミネーションを使用している他のスクリーンショットやビデオの詳細については、「Control」と「Metro Exodus」の記事をご確認ください。

レイ トレーシングのアンビエント オクルージョン

アンビエント オクルージョン (AO) は、岩が地面に接する部分のように、オブジェクトやサーフェイスが環境光を遮るコンタクト シャドウを追加する手法です。物体が サーフェイス から浮いているように見えるのを防ぎ、シーンをよりリアルに見せ、説得力を与えます。

今までは、クラス最高の AO ソリューションは NVIDIA の HBAO+ でした。この HBAO+ は、パフォーマンス忠実度の面で SSAO を大幅に改善しました。 しかしながら、結局のところ、画面空間の手法であり、画面から外れる隠れた部分は処理できませんでした。

レイ トレーシングのアンビエント オクルージョン (RTAO) を利用すると、画質と精度 大幅に向上し、テーブルの下の部分など、画面外の細部が考慮されます。結果的に、よりリアルなシーンが作られます。

 

この「Metro Exodus」のビデオでは、リアルタイムでレイ トレーシングのアンビエント オクルージョンのサンプルも確認できます

シーンの臨場感とリアリズムに対するアンビエント オクルージョンの重要性はしばしば見落とされがちです。反射や爆発ほど大きく、派手ではなく、プレーヤーの影のようにすぐには気付きません。しかしながら、アンビエント オクルージョンなしでは、すべての「質が低下」します。甲冑の折り目に陰影が入らず、2 つの壁が接する隅が暗くならないでしょう。まったくもって、他のサーフェイスの上にすべてが浮いているように見えるでしょう。

レイ トレーシングを利用することで、この重要な特殊効果をさらに改善できます。アンビエント オクルージョンを使用するあらゆるゲームにおいて、あらゆる細部が強化されます。「Assetto Corsa Competizione」、「Atomic Heart」、「MechWarrior 5: Mercenaries」、Metro Exodus」に関する NVIDIA の記事をご覧ください。実際の効果をさまざまなサンプルで紹介しています。

レイト レーシングの陰影

ビデオ ゲームの陰影はここ数年で大幅に進化しました。さまざまな機能が追加され、現実世界の陰影がかなり精巧に複製されるところまで到達しています。リアルタイム レイ トレーシングが登場するまでは、他ならぬ NVIDIA の Hybrid Frustum Traced Shadows (HFTS) 手法が最も近い位置まで来ていましたが、結局のところ、HFTS もその他のラスタライズ法もすべて、実際の陰影を模倣するべく賢くプログラミングされたトリックの集合でした。

HFTS なしでは、開発者は 精度、ディテール、表示距離を最大化するべく従来の陰影マップの特性のバランスを注意深く取り、同時に陰影のエイリアシング、アクネ (間違ったセルフシャドウ)、デタッチメント (陰影を投げるものの土台と完全に接触し、固定できない) を回避します。

レイ トレーシングがあれば、このような問題は大したことではなくなります。それどころか、シーン全体に何百万もの光線を投じて、特性、物体 光を妨げる群葉をリアルに表現し、本物と見まがう陰影を作り出すことに初めて成功しました。また、精確な陰影を加えるだけでなく、大規模で複雑なインタラクション、リアルタイムの半透明陰影付け、その他たくさんの手法を、以前に可能であったものをはるかに超えた詳細レベルで初めて実現しました。

特に、レイ トレーシングにより、開発者は領域の光源を利用することが可能になりました。半影が大きくなり、コンタクト ハードニングが物理的に正しくなり、陰影を投じる物体に近づけば近づくほど、陰影がそれだけ鮮明になります。この長所は「シャドウ オブ ザ トゥームレイダー (Shadow of the Tomb Raider)」ではっきり確認できます。これはレイ トレーシングによる陰影が加えられた最初のゲームの 1 つです。

 

レイ トレーシングの陰影のサンプルは、「Assetto Corsa Competizione」、「Atomic Heart」、「MechWarrior 5: Mercenaries」に関する NVIDIA の記事でもご確認いただけます。

リアルタイム レイ トレーシングが間もなくゲームに導入されます

反射、陰影、アンビエント オクルージョン、グローバル イルミネーションのすべてが、レイ トレーシングを使用した最も効果的な実現化です。これで私たちはようやく、前例のない忠実度、リアリズム、臨場感を与えるこれらの特殊効果をゲームとゲーマーに届けることができるようになりました。以上のように、GeForce RTX グラフィックス カードによるリアルタイム レイ トレーシングはグラフィックスを再創造するものであり、現行の手法のトリックや近似法を現実世界の光の動作に基づく現実的な計算に取って代えます。

NVIDIA のゲーム記事でレイ トレーシングが実際に使用されている様子をご覧ください。そして今年の後半、GeForce RTX グラフィックス カードで NVIDIA RTX ゲームをプレイするとき、ご自身で体験してみてください。

AI で高速化されるゲームの機能

NVIDIA RTX レイ トレーシングの動力となる「RT コア」に加え、新しい GeForce RTX グラフィックス カードは人工知能 (AI) 用の「Tensor コア」も備えています (技術的な詳細については、Turing ホワイトペーパーの 21 ページをご覧ください)。

ディープラーニング スーパー サンプリング (DLSS)

ここ数年、NVIDIA の創業者兼 CEO の Jensen Huang は ディープラーニング ニューラル ネットワークに関するあるデモを好んで紹介してきました。そのデモでは、ある写真に写っているペットが猫であるか、犬であるかを人工知能で判断しました。機械に与える画像を増やすと、それだけ選択が正しくなり、毎回、最終的には正しい答えが選択されました。

この基本を機械学習に応用することで作られたのが、ディープラーニング スーパー サンプリング (DLSS) と呼ばれている新しいレンダリング手法です。パフォーマンスを大幅に向上させ、画質を改善します。そのアンチエイリアス機能は、一般的に利用されているテンポラル アンチエイリアシング (TAA) 手法に比べ、安定性と画像の明瞭性に優れています。

これを実現するには、いくつかの手順があり、各手順でディープラーニングと AI に関する NVIDIA の最新技術と専門知識が活用されます。

まず、最大 64x でスーパー サンプリングされた各 DLSS ゲームからの数千単位の画面キャプチャをニューラル ネットワークに見せます。次に、アンチエイリアシングなしで記録した別の画像セットを見せます。次に、スクリーンショットを見直し、比較する仕事をネットワークに与え、莫大なパフォーマンス コストをかけることなく 64xSS の品質に近似させる方法を学習してもらいます。

ネットワークがプロセスを繰り返すたびにそのアルゴリズムが調整され、最終的にはプロセスを自動化することを学習します。アンチエイリアシングが 64xSS の画質に近づき、同時に、画面全体のぶれ、動きによるぶれ、ゴースト発生、透明な部分の乱れなど、TAA 関係の問題を回避します。

もちろん、誰もがスーパーコンピューターを所有しているわけではありません。そこで、NVIDIA は弊社のニューラル ネットワークからトレーニングしたデータをパッケージ化して小さなファイルを作り、 Game Ready ドライバーに含め、GeForce Experience 経由で利用者のシステムに配信します。その結果、ご利用の GeForce RTX GPU は各 DLSS ゲームを最も効果的にレンダリングする方法を自動的に認識し、毎回最適な結果を約束します。

ようやく、NVIDIA はディープラーニング スーパー サンプリングの非常に優れた 64xSS 品質と NVIDIA の高品質フィルターを活用し、ゲームの内部レンダリング解像を減らすまでに至りました。それにより画質に目立ったマイナスの影響を与えることなく、パフォーマンスが大幅に加速します。この様子は、Final Fantasy XV: Windows Edition DLSS ベンチマークでご確認いただけます。

このパフォーマンス促進と、GeForce RTX グラフィックス カードのラスタライゼーション パフォーマンスの向上が組み合わさることで、10 シリーズの Pascal アーキテクチャ グラフィックス カードと比べ、4K で最大 2 倍のフレームレート増加が確認されています。設定を上げて、このような規格外のパフォーマンスを引き出したり、60 FPS 以上で超滑らかな映像を楽しんだりすることで、究極のゲーム体験が実現します。

これを執筆している時点で、25 作品のゲームに DLSS が導入される予定ですが、その中には「ファイナル ファンタジー XV: Windows Edition (Final Fantasy XV: Windows Edition)」や「PUBG」などの人気ゲームソフトが含まれています。

  • Ark: Survival Evolved (開発元: Studio Wildcard)
  • Atomic Heart (開発元: Mundfish )
  • Darksiders III (開発元: Gunfire Games / THQ Nordic)
  • Dauntless (開発元: Phoenix Labs)
  • Deliver Us The Moon: Fortuna (開発元: KeokeN Interactive)
  • Fear The Wolves (開発元: Vostok Games / Focus Home Interactive)
  • ファイナル ファンタジー XV: Windows Edition (Final Fantasy XV: Windows Edition) (開発元: Square Enix)
  • Fractured Lands (開発元: Unbroken Studios)
  • Hellblade: Senua's Sacrifice (開発元: Ninja Theory)
  • Hitman 2 (開発元: IO Interactive / Warner Bros.)
  • Islands of Nyne (開発元: Define Human Studios)
  • Justice (開発元: NetEase)
  • JX3 (開発元: Kingsoft)
  • KINETIK (開発元: Hero Machine Studios)
  • Mechwarrior 5: Mercenaries (開発元: Piranha Games
  • Outpost Zero (開発元: Symmetric Games / tinyBuild Games)
  • Overkill's The Walking Dead (開発元: Overkill Software / Starbreeze Studios)
  • PlayerUnknown’s Battlegrounds (開発元: PUBG Corp.)
  • Remnant: From The Ashes (開発元: Arc Games)
  • SCUM (開発元: Gamepires / Devolver Digital)
  • Serious Sam 4: Planet Badass (開発元: Croteam / Devolver Digital)
  • シャドウ オブ ザ トゥームレイダー (Shadow of the Tomb Raider) (開発元: Square Enix / Eidos-Montréal / Crystal Dynamics / Nixxes)
  • Stormdivers (開発元: Housemarque)
  • The Forge Arena (開発元: Freezing Raccoon Studios)
  • We Happy Few (開発元: Compulsion Games / Gearbox)

GeForce.com を随時ご確認ください。DLSS を導入する他の新しいゲームに関する告知や、ゲームでの DLSS のリリースのニュースが満載です。

AI Up-Res

写真を拡大すると、既存のピクセルが広がり、その過程で細部や明瞭性が失われます。AI と「AI Up-Res」と呼ばれている新しいプロセスを利用することで、NVIDIA は画像の内容を解釈してからインテリジェントに新しいデータを配置し、新しいピクセルを作り出すことができます。その結果、拡大した画像がより鮮明になり、被写界深度の効果やその他のアーティスティックな処理を正しく残します。

NVIDIA Ansel で NVIDIA はこの技術を活用し、200 作品のゲームで高解像度のゲーム内写真を撮影することに成功しました。

詳細については、GeForce Experience の特集記事をご覧ください。

高精度シェーディング

GPU 上で実行されるプログラムであるシェーダーは、頂点がどうように配置されるか、見る人に近づくと大きな物体はどのように小さな三角形に分割されるか、物体表面の所与の場所で光がどのように反射されるかなど、現在のカメラ ビューに対してレンダリング プロセスのさまざまな側面を制御することで、現代のゲームで見られるような驚異的な映像を作るために必要なコントロールを開発者に提供します。

NVIDIA はプログラミング可能なシェーダーの先駆者であり、2001 年、世界初のプログラミング可能な GPU、GeForce 3 を開発しました。それから 17 年 間、 シェーディング技術で NVIDIA はめざましい進化を果たしました。その結果、細部までこだわった豪華な映像を見せる、よりリアルなゲームが生まれました。

Turing アーキテクチャは、そうした進化の頂点を表すものです。新しいシェーディング技術が 4 つ導入され、革新的なレンダリング手法を可能にし、ゲーム内のリアルタイム グラフィックスを視覚的忠実度とパフォーマンスの新しいレベルで実現します。

可変レート シェーディング

4K モニターや VR ディスプレイの 導入が 広まり、画面上のピクセルのシェーディングに GPU サイクルを使用する方法をもっと制御できないか、開発者たちは要求しています。たとえば、VR ヘッドセットでは、視野周辺のピクセルは画像の中心のピクセルほどシェーディングを必要としません。同じように、テクスチャの変化が滑らかな表面や柔らかな放散イルミネーションでは、各ピクセルを一からシェーディングすることなく、近隣のピクセル全体でシェーディング情報を再利用できます。

もう 1 つの例としては、シーン内を高速で動く物体がある場合です。モーションブラーを適用した車がキーッと音をたてながらディスプレイを横切ると、すべてのピクセルをシェーディングする必要はありません。あまりに高速で動くため、あらゆるディテールや効果をはっきり認識することができないためです。

こうしたシナリオに対処するために、Turing には、可変レート シェーディング (略して VRS) という高度なピクセル シェーダー スケジューリング テクノロジが導入されました。開発者は VRS を利用することで、画面上のさまざまな領域でどのくらいのシェーディングを設定するか完全に制御できるようになります。

VR ディスプレイの中心またはモニター上で高精度のサーフェイスにある物体をフル レートでシェーディングできます。さらには、ピクセルごとに複数回シェーディングすることもできます。同時に、VR ヘッドセットのレンズによってゆがむピクセルや画面上で 高速移動する 物体に対応するピクセルを低レートでシェーディングできます。1 回のシェーディング計算の結果が複数のピクセルで共有されます。

結果として、ゲームにおいて、シェーディング作業をよりインテリジェントに割り当てることが、シーン内で重要な物体により多くのシェーディング時間を費やすことができます。それほどシェーディングを必要としない他の物体からシェーディング リソースを「借りる」ということが効果的に行われます。

VRS を利用することで、NVIDIA はモーション アダプティブ シェーディング (MAS)、コンテンツ アダプティブ シェーディング (CAS)、フォービエイテッド レンダリングも開発しました。この 3 つの手法により、特別な方法でパフォーマンスが高速化されます。

モーション アダプティブ シェーディング (MAS)

画面上の特定の領域にある動きの度合いに基づいてシェーディング レートを変えることは、可変レート シェーディングの最も効果的な応用の 1 つです。この手法はモーション アダプティブ シェーディング (MAS) と呼ばれています。

モーション アダプティブ シェーディングでは、物体が画面をどのように横切るかを最初に計算します。たとえば、三人称視点のレーシング ゲームでは、ほとんどの場合、車の外観は変化しないため、重要なディテールを維持するためにフルレートでシェーディングする必要があります。それとは対照的に、標識や車線マークなど、画面周辺の物体はカメラに近づくと高速で移動し、そのため、シェーディングの頻度は少なくなります。

VRS がないと、各ピクセルは個々にシェーディングされます (1x1)。VRS を利用すると、開発者は、16x16 ピクセルのリージョンごとに、最大 7 つのオプションから選択できます。たとえば、4 個のピクセル (2 x 2) または 16 個のピクセル (4 x 4)、あるいは 1 x 2 や 2 x 4 のような非正方形のフットプリントに色を付ける目的で 1 つのシェーディング結果を利用できます。このスクリーンショットで確認できる色の付いたオーバーレイは、VRS の可能な応用方法を 1 つ示しています。たとえば、車をフル レートでシェーディングし (青の領域)、車付近の領域を 4 ピクセルごとに 1 回シェーディングし (緑)、左右のモーション ブラーが発生する道路を 8 ピクセルごとに 1 回シェーディングする (黄) ということがあります。

この動きの情報に基づき、ゲームは画面空間の領域ごとに適切なシェーディング レートを計算し、それを Turing の可変レート シェーディング (VRS) に送り、VRS がピクセル シェーダー スケジューリングを制御します。このポイントから先は、ゲーム エンジンの残りの部分はシェーディングの仕組みの大半を認識せずに進行します。そのため、この手法は既存のゲームに比較的簡単に統合できます。そしてもちろん、画質には認識できる影響をほとんど与えないので、ゲーマーにパフォーマンスが改善されたように見えます。

コンテンツ アダプティブ シェーディング (CAS)

コンテンツ アダプティブ シェーディングでは、空間的または時間的な色の一貫性などの要因を考慮することでシェーディング レートを下げます。言い換えると、スカイ ボックスや壁など、 フレーム間で 変化のない、ディテールが比較的粗い領域では、連続するフレームでシェーディング レートを下げることができます。

下の例では、アニメーション化されたコントロール パネル周辺の静的なディテールでシェーディング レートを下げることでパフォーマンスを上げています。

さらにパフォーマンスを上げる目的で、開発者は CAS と MAS の両方を同時に活用できます。

フォービエイテッド レンダリング

VRS の 3 つ目の応用方法がフォービエイテッド レンダリングです。この手法では、眼の動きを追跡するテクノロジが VR で使用されているとき、あるいは Tobii 4C のようなデスクトップ モニター アイトラッカーが使用されているとき、ゲーマーが見ているものに基づいてシェーディング レートが調整されます。

フォービエイテッド レンダリングは、私たちの眼が知覚できる解像度は視野角に左右されるという考えに基づいています。物体が視野の中心にあるとき、私たちの眼の識別能力は 最大 になりますが、物体が視野の外れ近くにあるときは、識別能力は 大幅に 低下します。そのため、見る人の眼の位置がわかっている場合、周辺を低いレートでシェーディングし、視野の中心を高いレートでシェーディングすることで常に画質を最大化できます。

マルチビュー レンダリング

Pascal アーキテクチャに Single Pass Stereo が導入されました。これは、それぞれの眼を非依存でレンダリングする代わりに、左または右にジオメトリの位置をオフセットする前に、ヘッドセットの両方のディスプレイに対して 1 回だけジオメトリを送信することで VR のパフォーマンスを加速する手法です。

Turing アーキテクチャのマルチビュー レンダリング (MVR) を利用することで、シーン内で自由に配置可能な最大 4 つのビューをレンダリングできるようになりました。ゲーマーにとっては、傾きが付いた (同一平面上ではない) 超ワイドなラップアラウンド型で、極限の視野と、左右の眼でスクリーンが重ねられる高解像度設定を持つヘッドセットが与えられる可能性が開けます。また、複数の視点を考慮しなければならないホログラフィック ディスプレイのレンダリングも加速する可能性があります。

VR 以外のシナリオでは、マルチビュー レンダリングを利用し、複数の シャドウマップ のレンダリングを加速できます。開発者は、高解像度で鮮明な陰影を生成できます (レイ トレーシングを使用しない場合)。

メッシュ シェーディング

現実世界は、視覚的に豊かで、幾何学的に複雑な場所です。 特に 屋外のシーンは非常に多くの要素 (石、木、葉など) から構成されます。

現行のグラフィックス パイプラインと頂点、テッセレーション、ジオメトリ シェーダーは、1 個の物体の細部をレンダリングするときに非常に効果を発揮しますが、 それでも 現実世界のディテールを模倣しようとすると限界があります。特に、各オブジェクトは CPU に独自のドロー コールを要求します。シェーダー モデルはスレッド単位のモデルであり、利用できるアルゴリズムの種類が制限されます。

このような現実世界の光景は独特の複雑な物体がたくさんありすぎて、現行のグラフィックス パイプラインではリアルタイムでレンダリングできません。

ジオメトリの効率的な処理は、リアルタイム コンピューター グラフィックスの基礎の 1 つです。NVIDIA には、この面で革新的技術を推し進めてきた長い歴史があります。NVIDIA の最初の GPU、GeForce 256 は、多大なコストのかかる計算タスクを CPU から解放しました。GeForce 3 は世界初のプログラミング可能な GPU であり、ジオメトリ処理に対する前例のないコントロールを開発者に与えました。また、Fermi アーキテクチャはテッセレーションを導入しましたが、これは幾何学的細部を最良のスケールで表現するために映画でよく用いられる手法です。

そして今、VR、レイ トレーシング、複雑なゲームで写真のようなリアルな映像が追求される中、より細かな幾何学的忠実性が今まで以上に求められています。より効率的な幾何学処理に対する要望が増える中、それに対処する目的で、Turing アーキテクチャにメッシュ シェーディングが導入されました。これはジオメトリのためのまったく新しいプログラミング モデルであり、計算シェーダーの柔軟性とハードウェア スケジューリング対応のグラフィックス パイプラインの効率性を結合しています。とりわけ、メッシュ シェーディングの新しい、より柔軟なモデルを利用することで、開発者は、CPU のドロー コールに関連するボトルネックを解消できます。より効率的なアルゴリズムを利用して三角形を生成します。

メッシュ シェーディングにより、開発者は個々の頂点の処理や個々のプリミティヴの処理について考える必要がなくなりました。その代わり、新しいプログラミングのパワーを活用し、ハードウェア スケジューリング対応の一連のスレッドを連携させることで、非依存で計算する場合よりもはるかに効率的に結果を計算できます。

たとえば、1 つの頂点は通常、たくさんの三角形により共有されます。所与の三角形が表示されるかどうかを判断するために、ゲーム エンジンは三角形のそれぞれの頂点で計算を行い、結果を結合する必要があります。従来のパイプラインでは、各三角形が非依存で処理され、そのため、共有される頂点が複数回、冗長に処理されます。

メッシュ シェーディング パイプラインと従来のパイプラインの違い

メッシュ シェーディングの場合、計算の頂点ごとの部分を厳密に 1 回実行し、その頂点を参照するすべての三角形で共有できるように開発者は計算を構成できます。

メッシュ シェーディングのもう 1 つの側面には、幾何学調整に非常に優れているという点があります。テッセレーションを利用すると、所与のパッチまたは三角形を小さな三角形の固定パターンに分割できます。メッシュ シェーディングでは、その調整をどのように行うか、開発者は完全に制御できます。たとえば、その幹や枝がどこにあるのか簡単に説明することで、樹皮や葉が完璧に描かれた全体的な木を生成するようにハードウェアをプログラミングできます。

つまり、メッシュ シェーディングでは、今まで見たことがないような極めて細かな世界を創造できます。細かに描かれた植物、下草、散乱物、土、その他の小さなディテールについて考えてみてください。それらは現実世界で私たちが目にするものであり、ゲーム内のシーンを「合成」のように見せないために非常に重要です。

「Asteroids Level of Detail (LoD)」というデモを作成しました。このデモでは、非常にたくさんの小惑星を同時にレンダリングするとき、メッシュ シェーディングがどのくらい劇的にパフォーマンスと画質を改善するのかご覧いただけます。

LoD にはなじみがないでしょうか。これは、プレーヤーのカメラからの距離に基づいて物体の質をスケールする目的で事実上、すべてのゲームで用いられている手法です。たとえば、木を例に取ります。あなたから見えない距離にあるすべての葉や枝をレンダリングすることに意味はありません。そこで、代わりに全体的な大きさや形を見せるために木のディテールを減らし、パフォーマンスを維持し、近くの木を最高の忠実度でレンダリングするためのリソースをゲームに与えます。このプロセスは、ゲームを通して画面上のあらゆるモデルとオブジェクトに適用されます。メッシュ シェーディングが画質とパフォーマンスにどれだけ貢献しているかは想像に難くありません。

この小惑星のデモでは、メッシュ シェーダーは最大 350,000 個の小惑星の詳細レベルを動的に調整し、他の方法では不可能なレベルのパフォーマンスでピクセルより小さな幾何学的ディテールを維持します。

従来のレンダリングの場合、CPU が LoD の管理に深く関係し、レンダリング パイプラインに大きなボトルネックが生まれます。メッシュ シェーディングの場合、動的な LoD 管理が GPU 上で自律的に実行されます。このデモでは、メッシュ シェーディングの動的 LoD システムのオン/オフをユーザーが切り替えられるようにしてあります。オンにしたとき、はるかに優れた画質とパフォーマンスを示します。

下のインタラクティブ比較では、小惑星デモをワイヤフレームでレンダリングしています。LOD が高いほうが画質が良くなることをはっきり確認できます (テッセレーションは使用されていません)。

NVIDIA メッシュ シェーディングを利用した小惑星デモのインタラクティブ比較

プログラミング可能なメッシュ シェーディングを利用することで、GPU はプレーヤーの視野に入る数兆単位の三角形を、画面上のピクセルをカバーするために必要な数百万単位の三角形まで劇的に間引きできます。こうした単純な手法を効率的に応用することで、パフォーマンスを大幅に改善し、同時に、最も重要である、プレーヤーの視点に近い部分の画質を相当改善することができました。

以上のような長所があるメッシュ シェーディングにより、今まで体験したことがないような、広大かつ緻密な世界を創造できます。

テクスチャ スペース シェーディング

現代のほとんどすべてのゲームで新しいフレームが「一から」レンダリングされています。つまり、(テンポラル アンチエイリアシングを使用しない限り) そのフレームの前に行われた計算が使用されることはありません。しかしながら、ほとんどのゲームでは、現実世界と同じように、フレーム間の変化は比較的少ないものです。窓の外を見ると、風に吹かれている木、通り過ぎる歩行者、遠くの空を飛ぶ鳥が見えるかもしれません。その光景の大半は、しかしながら、「静的」です。つまり、変化がないものです。変化の中心にあるのは、あなたの視点です。

あなたが視点を変えると、いくつかの物体は外見を変えるでしょう。光沢のあるものでそれは顕著です。しかしながら、実際には、あなたが頭を動かしてもほとんどの物体は外見をほとんど変えません。そのため、そのような物体を構成するまったく同じ色をフレームごとに再計算するために貴重な GPU サイクルを使うのはもったいないことです。そのような物体は低いレートで (たとえば、3 フレームごとやそれ以下のレートで) シェーディングし、前に計算された物体の色 (これは「テキスト」とも呼ばれています) を再利用する方法がはるかに効率的です。この作業を再利用するという考えは、レイ トレーシングで、特にグローバル イルミネーションで重要になります。グローバル イルミネーションは、変化が遅く、シェーディング計算が非常に不経済となる典型的な例です。

この手法は「テクスチャ スペース シェーディング」と呼ばれています。この手法では、計算は画面空間のフレーム間で (すなわち、ゲーマーの視点から) 実行されず、テクスチャ空間において異なるシェーディング レートで (実質的に、オブジェクト自体の視点から) 実行されます。テクスチャ スペースとは何か。  最近のゲームではすべてのオブジェクトにテクスチャがあり、テクスチャはゲーマーの視点に依存しません。シェーディングしたオブジェクトの色を格納する格好の場所となり、フレーム間で「渡されます」。

この同じ手法を VR にも効果的に応用できます。人間の両目はそれほど互いから離れておらず、片目で見る物体の大半はもう 1 つの目にも映っています。大きな違いはそうしたオブジェクトのシェーディング (机の上の鉛筆が左の目にも右の目にも同じ黄色に見えるなど) ではなく、オブジェクトの方向性にあります。そのため、テクスチャ スペース シェーディングでは、片方の目からシェーディング計算を「借り」、もう一方の目でそれを利用することで実質的にシェーディングの負荷を半分にします。また、ゲームのピクセル シェーディングによりパフォーマンスが制限される場合、理論的には、テクスチャ スペース シェーディングでフレームレートを 2 倍にできます。

テクスチャ スペース シェーディングを利用すると、ゲーム エンジンでは、ラスタライゼーションされたすべてのピクセルをすぐにシェーディングすることはありません。そうではなく、ラスター化したピクセルにより参照されているテクセルが最初に特定されます。この動作は、所与のテクスチュアリングに必要なテクセルをテクスチャ ユニットが見つけるときに行う動作によく似ています。この一連のテクセルがシェーディングのための待ち行列に入り、後の時点でシェーディングが行われます。この過程の間、同じテクセルが複数のピクセルによって参照されることがありますが、効率性のために、NVIDIA はもちろん、テクセルの冗長的なシェーディングは望みません。そのため、ゲーム エンジンでは、シェーディング要求の重複除去と呼ばれている作業が実行され、重複ではないテクセル参照が分離され、各テクセルが 1 回だけシェーディングされるように手配されます。

一連の重複ではないテクセル参照が特定されると、ゲームはそれらのテクセルをシェーディングし、後で再利用するために対応するテクスチャに結果を格納します。これはピクセル シェーディングに似ていますが、画面上のピクセルではなく、テクスチャ内のテクセルがシェーディングされるという点が異なります。

最後になりますが、計算されたテクセルを利用し、静的テクスチャが利用される現行の方法とまったく同じ方法で、該当するピクセルの色を計算できます。テクスチュアリングが 1 回実行されるだけなので、この手順は極めて安上がりとなります。

表示される一連のテクセルを見つけ、重複ではないテクセルを分離する過程は、非経済的な計算プロセスです。そのような理由から、以前はテクスチャ スペース シェーディングを応用できませんでした。Turing アーキテクチャでは、この重要な手順にハードウェア加速を導入することでこの問題に対処しています。Turing のテクスチャ ユニットはシェーダーにテクセル アドレス情報を直接提供できるようになりました。新しいデータ並列イントリンシックはプロセスの重複除去手順を非常に効率的にします。

テクスチャ スペース シェーディングは非常に簡単で論理的に思われますが、いくつかの「不具合」があり、主流になれない理由となっています。

まず第一に、最近のゲームでは、テクスチャも含め、たくさんのオブジェクトが再利用されます。ゲーム内の森を見ると、一枚一枚の葉に独自のテクスチャが与えられていることはほぼありません。ほとんどの場合、葉はすべて、葉のモデル/テクスチャの小さな集合から取得されます。そのようなオブジェクトはテクスチャ スペース シェーディング向きではありません。目に見える物体にはすべて、独自のテクスチャを与える必要があるためです。共有は許可されません。これを強制しなかった場合を想像してください。1 本の木のすべての葉が引き続き同じ葉テクスチャを共有しました。次にあなたが自分の手でその 1 つを影の中に置きます。すると、木の葉がすべて、同時に影の中に入るでしょう。開発者が最初に対処しなければならないことがこれです。他のすべてのオブジェクトに依存せずシェーディングできるように、すべてのオブジェクトに独自のテクスチャを与えます。

テクスチャ スペース シェーディングではそのため、ゲーム エンジンの構築方法についてかなり大がかりな再考が必要となります。しかしながらそれが終われば、可能性は無限です。レイ トレーシングとラスタライゼーションの両方の長所に基づいて写真のようなリアルな画像を高フレームレートで妥協なく生成する、まったく新しいレンダリング方法への扉が開かれます。Turing アーキテクチャはテクスチャ スペース シェーディングをハードウェアでサポートし、このようなハイブリッドの手法がようやく実用化されます。

次世代ゲームのためのグラフィックス再発明

NVIDIA GeForce RTX グラフィックス カードで究極の PC ゲーミング体験が実現します。新しい NVIDIA Turing GPU アーキテクチャと革新的な RTX プラットフォームを採用した RTX グラフィックス カードでは、リアルタイム レイ トレーシング、人工知能 (AI)、プログラマブル シェーディングが統合されています。まさしくゲーミング体験の新機軸です。

GeForce.com に定期的にアクセスしてください。革命的な GeForce RTX テクノロジを組み込んだゲームに関するニュースをお伝えしています。