技術インタビュー:DOOM

これらのいずれかをやってからしばらく経ちました! IDソフトウェアの素晴らしいDoom Rebootの技術分析をまとめている間、1つのことが明らかになりました。これは、非常に高いフレームレートを維持しながら、視覚的な忠実度の驚くべきレベルで渡るゲームでした。ここでの成果の規模は、実際には控えめになりません。私たちは、ほとんどではないにしても、30fpsのタイトルよりも多くの人よりも視覚的な60fpsのゲームを渡すことを見ていました。彼らはどうやってそれをしたのですか?

ゲームは最近の開発に非常に時間がかかるため、多くのクリエイターがGDCやSiggraphなどで自分のテクニックについて講演を行い、多くの現代ゲームの技術的基盤についての洞察を与えてくれます。記事やビデオをまとめる際に貴重な研究を提供すること。しかし、Idtech6、その前身との関係、そして実際にキャンセルされたDoom 4に動力を供給したエンジンの構成についてはほとんど知られていませんでした。

したがって、IDソフトウェアとの「ノーホールドバーレッド」の技術インタビューをまとめる機会が来たとき、私たちはそれを熱心につかみました。この作品では、私たちは深く登場します - ゲームの最新のイテレーションが基づいているコアレンダリング原則、解像度、スケーリング、アンチエイリアシングに関するチームの見解に加えて、もちろん、成長している成長非同期計算の重要性、およびPCグラフィックスAPIの新しい波。

そして、この作品のタイミングも幸運です - 今週、IDはDoomの待望のVulkanパッチをリリースし、PCゲームのゲームを変える改善と、特にAMD Radeonのハードウェアの腕のショットをもたらしました。開発者がDirectX 11から先に進み、VulkanやDX12などを受け入れる時ですか?以下にわかります。

質問に答えることは、IDソフトウェアの主要な技術スタッフの誰が誰なのか、真の人です。この記事の多くの時間を私たちに与えてくれたチームに感謝します。

  • ロバート・ア・ダフィー - 最高技術責任者
  • ビリー・カーン - リードプログラマ
  • Tiago Sousa-リードレンダリングプログラマー
  • Jeanが提出しました - シニアエンジンプログラム
  • Axel Gneiting-シニアエンジンプログラマー
John LinnemanのDoomのオリジナル分析ビデオは、このタイトルが非常に強力な技術的ショーケースである理由について深くなります。YouTubeをご覧ください

デジタルファウンドリー:Doomの歴史とIDソフトウェアの歴史を見ると、技術の卓越性の驚異的な遺産が見られます。 IDTech6の目的は何でしたか?最終結果に満足していますか?

ロバート・ア・ダフィー:元の目的は非常に単純でした。 60fpsでクラス最高のビジュアルと、シューターに最高のプレイヤーの動きと感触を望んでいました。明らかに、これらの目標を達成するための基盤を形成するより小さな目的のリスト全体がありますが、テクノロジーの目標に直面する主要な消費者として、それはそれでした。最終結果に非常に満足していますが、コンソールの更新、VulkanサポートのPCのサポート、コミュニティ向けの他の多くのアップデートでプッシュを続けています。

デジタルファウンドリー:IDTech6のタイムラインについてのアイデアを得ることができますか?最終ゲームとキャンセルされたDoom 4の両方で、Doom Developmentと並行して基本的に進化しましたか?または、60fpsをターゲットにしたときに、基礎となる技術を完全に刷新しましたか?

ロバート・ア・ダフィー:私たちがDoomゲームプレイをプロトタイプしていて、環境が形成され始めたため、現代のドゥームゲームが保証されていると感じた視覚的な忠実度を達成するために、テクノロジーを別の方向に進める必要があることは明らかでした。 60fpsは常にゲームのターゲットでしたが、完全な動的照明、影、その他の機能を追加し始めたとき、パフォーマンスターゲットはエンジニアリングチームの主な焦点になりました。短い答えは大いに変わっていますが、すべてではありません。

デジタルファウンドリー:IDTECH5と6の間の大きな変化について議論することができますか?怒りは、特にはるかに静的な照明アプローチであり、おそらくフォワードレンダラーでした。一方、Doomはダイナミックな光と影がはるかに豊富です。それは何らかの形のタイルの延期またはクラスター化された延期レンダラーですか?

ティアゴ・スーサ:最初から、IDTECH 6レンダラーの目標の1つは、照明、シャドーイング、および詳細が異なる表面タイプでシームレスに動作できるように、できるだけ統一されたデザインを可能にすることでした。スケーラビリティ、コンソール、MSAA/優れた画質、MGPU [Multi-GPU]スケーラビリティなどを念頭に置いてください。

現在のレンダラーは、ハイブリッドフォワードおよび延期レンダラーです。このようなデザインにより、私たちは両方の世界から最善を尽くしています。フォワードレンダラーのシンプルさと、特定のテクニックを効率的に近似できるように延期される柔軟性です。最初からのもう1つの目標は、アートチームの反復時間とディスクスペースの消費などを改善することでした。 IDTECH5からのスタンピングアプローチから離れたいと考えていました。本質的には、テクスチャに詳細がどのように適用されたかです。過去には、事前のベーキングテクスチャの結果に依存してメガテクスチャなどに依存していました。この反復では、このプロセスをリアルタイムGPUアプローチに変換しました。

GPUに供給するためのすべての入力データをパラメーター化するために、Ola Olsonらからの「クラスター化された延期および前方シェーディング」と、その派生的な「実用的なクラスター化されたシェーディング」は、その比較的単純さとその比較的単純さのために、私の目を引きました。優雅さなので、その研究から拡大しました。世界の網掛けに必要なすべてのボリュームデータは、本質的にカメラのフラストム型ボクセル構造を介して供給され、そのようなボリュームはすべて登録されています。かなり寛大なライト、画像ベースのライトボリューム、デカールなどが可能になります。

バルカンがテーブルにもたらすパフォーマンスの改善の最初の概要。YouTubeをご覧ください

デジタルファウンドリー:最新のエンジンにはどのくらいのIDTECH5 DNAが残っていますか?たとえば、仮想テクスチャリングは残っているようです。

ビリー・カーン:エンジンは、絶えず改善および適応する進化する生物であると考えています。エンジンテクノロジーの出血の端に絶えず留まることは、私たちにとって非常に重要です。 Doomは、仮想材料を使用して、PBRレンダラーにテクスチャデータをフィードします。

デジタルファウンドリー:新しいレンダリングセットアップへの移行には、資産の作成とツールの大きな変化が必要でしたか?

ティアゴ・スーサ:はい、前述のように、私たちの大きな目標の1つは、IDTech 6を物理的にもっともらしいレンダリングモデルに変換することでした。これは、チーム全体をLDR/線形不可知論的レンダリングから高ダイナミックレンジレンダリングと線形正しいレンダリングに移行することから始まり、このステップの後、チームに物理ベースのシェーディングを紹介しました。

これは、特にアートチームにとって、かなり大きな調整でした。トーンマッピング、画像露出、線形正確性、身体的にもっともらしいテクスチャパラメーター化、一貫した方法での資産作成などに慣れなければならなかったからです。エンジニアリングチームでさえ、これは大きな移行でした。すべての関連するニュアンスのすべてを理解し、実行しているすべての入力を線形正しい、HDRライトマップ、魔法の乗数などに移行するなど、すべてが一貫した高品質のレンダリングに必要です。

デジタルファウンドリー:Xbox Oneの限られたESRAMスペースは、動的解像度のスケーリング実装にどのように影響しますか? Esram Management全般へのアプローチは何ですか?

ティアゴ・スーサ:解像度のスケーリングと直接的な相関はありません。 ESRAMは、帯域幅の限られたテクニック、特に深さの準備とシャドウマップのレンダリングを高速化するために使用されました。次に、パフォーマンスのためにESRAMに保存されているライトバッファー/ThingBufferレンダリングターゲットのようなもの。これらのターゲットは、透明度を高速化するためにも後で再利用されます。

Digita Foundry:私たちは、金属のシェーディングのような素晴らしい要素が全体にわたってどれほど素晴らしい要素であるかに気づかずにはいられませんでした。物理的にベースのシェーディングに対するアプローチは何でしたか?たとえば、悪魔の肌に具体的なテクニックがありましたか?

ティアゴ・スーサ:照明アプローチは、リアルタイムの近似と事前に計算されたコンポーネントの組み合わせです。間接照明の場合、IDTECH 6は、静的ジオメトリに事前に焼き付けられた間接照明を使用し、ダイナミクスのために照度量近似と混合します。間接的な鏡面バウンスには、画像ベースの照明アプローチを使用しました。

リアルタイムコンポーネントは、リアルタイムの方向オクルージョンと反射の近似と混合したシェーディングアンチエイリアスとともに、直接照明とシェーディングアンチエイリアシングに最先端の分析照明モデルを使用します。皮膚サブ表面散乱は、実際にテクスチャルックアップと焼き透過性データを介して近似されます。それはかなり効率的です - 特に通常のコストのかかるスクリーン空間近似と比較してください。

ここでの私たちの最大の成果は、それがどれだけうまく機能するか、さまざまな表面タイプにわたる一貫性ですが、私たちは常にさらに改善する方法を探しています。

リッチロードテストは、Radeon R9 Fury XのVulkanパッチを、ウルトラ設定(プラス16x AFおよび高モーションブラー)で4Kで実行します。また、NVIDIA GeForce GTX 1070のパフォーマンス比較もどうですか?YouTubeをご覧ください

デジタルファウンドリー:8x TSSAAの実装がどのように機能するかについて話してもらえますか?コンソールとPCの間で一貫していますか?

ティアゴ・スーサ:私は常に、フレームコストの償却/分離のファンでした。 TSSAAは本質的にそれを行っています - それは、蓄積バッファーのための画像の非難とカップルヒューリスティックの混合を介して、いくつかのフレームで取得したデータから約8倍のスーパーサンプリング画像を再構築します。

比較的最小限のランタイムコストに加えて、フレーム全体でエイリアシングを緩和しようとする一時的なアンチエイリアスの追加の利点があります(カメラをゆっくりと動かしながらシェーディングやジオメトリエイリアシングなど)。コンソールとPCの間でほとんど同じ実装であり、違いはコンソールのGCN固有の最適化といくつかの軽微な単純化です。

デジタルファウンドリー:動的解像度のスケーリングはコンソールでうまく機能します - PCで動作する同じテクノロジーを排除する技術的な理由はありますか?

ビリー・カーン:動的解像度のスケーリングは、実際にはすべてのプラットフォームで動作します。現在、ユーザーは設定メニューから必要な解像度を効果的に選択できるため、PCで動的解像度スケーリングを有効にしていません。ユーザーが高解像度で実行できるようにする静的解像度スケーリングを提供しますが、レンダリングバッファーをパーセンテージで下げて、より高いフレームレートを達成します。

デジタルファウンドリー:スカラーは、PS4とXbox Oneの両方で非常に効果的です。解像度全般の重要性と、画質の観点からの重要性について私たちに考えていただけますか?

ティアゴ・スーサ:PS4/Xbox Oneのネイティブスケーラーを使用していません。かなり最適な2気筒フィルターを介して独自のアップサンプリングを行います。また、TSSAAは、解像度の変更から発生するエイリアシングを緩和し、動的解像度のスケーリングの変更を暗黙的に考慮していることに言及することも重要です。

解像度の重要性とは、領域を表示および表示するための目の距離(本質的に角度分解能)の関数であり、個々の視力からもある程度です。つまり、ディスプレイから遠く離れているほど、ピクセル密度が高くなるということです。一定の距離/ピクセル密度しきい値の後、他のことを改善するために使用できるパフォーマンスを本質的に無駄にします。たとえば、VRでは、顔の前にこの小さなディスプレイがあり、より高いピクセル密度を押すと、ジオメトリエイリアシングなどに対処するためには依然として理にかなっています。

プレイヤーが通常2メートル以上の距離で再生されるコンソールゲームプレイを使用し、表示サイズは一般的なサイズ(たとえば70 "程度)です。開発者はそれをブルートフォースの方法で行う場合、あなたは本質的に同じコンテンツをラスター化していますが、それほど多くの利益でも、ユーザーがディスプレイにかなり近い場所にあるため、単なるブルートフォースレンダリングよりも、解決コストを切り離すためのアプローチの。

IDソフトウェアは、現在の世代のコンソールで60fpsでDoomをうまく実行することに多大な努力を払っています。シングルプレイヤーモードでのスタックアップ方法は次のとおりです。YouTubeをご覧ください

デジタルファウンドリー:PCの方向閉塞設定について説明できますか?

ティアゴ・スーサ:設定が低いとサンプル数が低く、設定が高いとサンプル数が高くなります。実際には全体的にかなり少ないサンプルを使用していますが、TSSAAに依存してフレームよりも高品質の結果を再構築しています。それは非常にパフォーマンスがあり、1440pでPCで約0.1msです。

デジタルファウンドリー:オブジェクトのモーションブラーとカメラのモーションブラーを分離することは可能ですか?

ティアゴ・スーサ:正確性/信ability性の観点から、モーションブラーは、フィルム/デジタルセンサーへの一定の時間の間、画像露出間の蓄積された光を本質的にシミュレートしています。そのような近似には、ピクセルの動きの履歴を再構築する必要があります。リアルタイムの目的で、通常、予測された表面の相対速度を視聴平面に出力することで達成され、電流と前のフレームの間で達成されますが、次のフレームは通常外挿です。したがって、物理的にもっともらしいビューから、オブジェクト(すなわちダイナミクス)とカメラ(すなわち、staticsまたはカメラの回転のみ)を分離することはあまり意味がありません。それはプログラム的に可能ですが、顕著なアーティファクトを導入し、最終的にはそれほど素敵に見えません。

デジタルファウンドリー:レンダリングモードの技術的な違いは何ですか - 通常、ザラザラ、映画劇的なものは何ですか?

ティアゴ・スーサ:各レンダリングモードは、プレーヤーが実際にプレイしたいと思うように設計され、各プレイで比較的異なる視覚体験をすることができます。技術的には、ライトの飽和、トーンマッピング、カメラの自動露出などのパラメーター化を単に調整するだけです。シネマティックモードはさらに、画像ベースのレンズフレアとビグネット(明るいソースでより顕著である)を比較的微妙に追加します。

デジタルファウンドリー:コンソールで、PS4とXbox Oneの間に違いを与えてくれた非同期コンピューティングで深く入り込むことができますか?

ジャン・ゲフロイ:GPUのパフォーマンスを見ると、すぐに非常に明白になることは、レンダリングパスがコンピューティングユニットをほとんど使用しないことです。例として、シャドウマップレンダリングは、通常、固定パイプライン処理(ラスター化など)と生の計算パフォーマンスではなく、メモリ帯域幅によってボトルネックされています。これは、シャドウマップをレンダリングするとき、並行して何も実行されていない場合、多くのGPU処理能力を効果的に無駄にしていることを意味します。

より集中的なシェーディング計算でジオメトリが合格すると、内部グラフィックパイプラインに関連するさまざまな理由でコンピューティングユニットを一貫して最大限にすることができない可能性があります。これが発生するたびに、Async Computeシェーダーは、他のタスクに使用されていないコンピューティングユニットを活用できます。これは私たちがDoomで取ったアプローチです。たとえば、後処理とトーンマッピングのマッピングは、グラフィック作業の重要な部分と並行して実行されます。これは、グラフィックス全体で作業を異なる方法でスケジュールし、キューを計算するだけでマルチMSの利益をもたらす可能性がある状況の良い例です。

これはほんの一例ですが、一般的に言えば、Async ComputeはGPUを最大限に活用するための優れたツールです。いくつかのメモリ集約的な作業をいくつかの計算集約型タスクと重複させることができるときはいつでも、パフォーマンスの向上の機会があります。両方のコンソールで同じようにAsync Computeを使用します。利用可能なキューの数に関しては、ハードウェアの違いがいくつかありますが、計算タスクのスケジュール方法により、実際にはそれほど重要ではありませんでした。

Pre-Vulkanは、Radeon R9 390およびGTX 970を使用してDoomを使用したPCのパフォーマンスがどのように積み重なるかを見てください。YouTubeをご覧ください

デジタルファウンドリー:Vulkanを介してPCバージョンでAsync Computeが表示されますか?

ビリー・カーン:はい、Async Computeは、AMDハードウェアで実行されているPC Vulkanバージョンで広く使用されます。 Vulkanは、最終的には、Metal 'にもっと多くのコーディングをすることができます。厚いドライバー層はVulkanで排除され、OpenGLまたはDXで達成できない大幅なパフォーマンスの改善が得られます。

デジタルファウンドリー:Async Computeがフォーマット全体のすべてのエンジンの主要な要因になる時期を予見していますか?

ビリー・カーン:本当に、今はそうです。 Doomは、Async Computeが適切に使用すると、ゲームのパフォーマンスと外観を劇的に強化できるという明確な例です。今後、コンピューティングと非同期計算は、IDTECH6にさらに広範囲に使用されます。ゲームで効果的に使用する方法を発見する際に、より多くの開発者がコンピューティングと非同期コンピューティートを利用することはほぼ確実です。

デジタルファウンドリー:Triple-Aゲーム開発の主要なAPIとしてVulkan/DX12を採用することについてどう思いますか?まだ早すぎますか?

Axel Gneiting:私は誰でもできるだけ早く始めるようにアドバイスします。学習曲線は間違いなくありますが、利点は明らかです。 Vulkanは実際にRenderDocでかなりまともなツールをサポートしており、デバッグレイヤーは今までに本当に便利です。 Vulkanの大きな利点は、シェーダーコンパイラ、デバッグレイヤー、RenderDocがすべてオープンソースであることです。さらに、Windows 7を完全にサポートしているため、DX12と比較してOSサポートには欠点がありません。

ティアゴ・スーサ:別の観点から見ると、ゲームがまだないため、ゲームが完全に活用されていることで完全に有利になっているのを見るのは面白いと思います。画面上のジオメトリの詳細の量がダイナミックな影のようなもので比較的大きなジャンプをすることを期待しています。見落とされているもう1つの側面は、CPUのオーバーヘッドが低いため、アートチームがより効率的に作業できるようになることです。その側で歓迎すべき生産性が向上していると予測しています。

PCのパフォーマンスについては、もう1つのプリバルカンが見ています。コンソールと同等のエクスペリエンスを取得するには、GTX 960/R9 380レベルハードウェアとクアッドコアプロセッサが本当に必要です。これは、IDがコンソールの最適化で1つの仕事をしたことを示しています。YouTubeをご覧ください

デジタルファウンドリー:コンソールのCPUとそこでの最適化の機会をどのように利用するかについてのアイデアを教えてください。 PCバージョンには本当に必要があります。これは、比較的言えば、PS4/Xbox Oneジャガーで床を拭く必要があります。

Axel Gneiting:両方のコンソールで利用可能な7つのコアすべてを使用しており、一部のフレームでは、CPU時間のほぼ全体が使用されています。 CPUサイドレンダリングおよびコマンドバッファ生成コードは非常に並行しています。ゲームのVulkanバージョンは、適度に速いデュアルコアシステムで正常に実行されると思います。 OpenGLはコア全体を占有し、Vulkanはそれを他の作業と共有することができます。

デジタルファウンドリー:NDAを破ることなく、ゲームテクノロジーの未来は、GPU Power vs CPUに対してさらに大きなバイアスを示しているようです。通常、CPUに関連付けられるタスクにGPUを使用するという点で、IDTECH6でできることはもっとあると思いますか?

Axel Gneiting:一般に、未来を予測することは非常に難しいので、コードを可能な限り単純かつ率直にして、あらゆるアーキテクチャに対応できるようにします。今のところ、私たちはその方向に向かっているように見えます。

ティアゴ・スーサ:長期的には、多くのGPUがMGPU AFR [マルチGPU代替フレームレンダリング]などの古い学校の方法よりも、より興味深い方法で協力する未来を予見できました。特に、開発者がさまざまなプラットフォーム全体でスケーリングできるためにコストを償却/キャッシュしようとしているので、GPUを横切って同期することは、AFRタイプのアプローチにとって大きなボトルネックになりつつあります。

デジタルファウンドリー:ベータ段階では、コンソールバージョン上のAdaptiveからStraight V-Syncソリューションに移動しました。そこで何を考えていましたか?

ジャン・ゲフロイ:あなたが気づいたように、V-Syncソリューションを含め、閉じたベータ版とオープンベータ版の間でかなりの数のことを改善しました。これを変更して、代わりにトリプルバッファーソリューションを使用して、最小レイテンシでGPUによってレンダリングされた最後の画像を常に表示します。これは、Nvidiaが最近PCに導入したFast Syncに非常に似ています。

最後のベータ版でのコンソールマルチプレイヤーパフォーマンスをご覧ください。最終的なMPゲームフレームレートにかなり近い。YouTubeをご覧ください

デジタルファウンドリー:より一般的にパフォーマンスに最適化する方法について何か考えを教えていただけますか?

Axel Gneiting:それには大きな秘密があるとは思わない。他の人と同様に、私たちはプロファイラーを使用し、ホットスポットを見つけ、それらを最適化し、繰り返します。

ティアゴ・スーサ:私は物事をシンプルに保つのが好きです。通常、私はターゲットハードウェアと未来の粒子を考慮しながら、最小限のデータとコード - およびアルゴリズム的に視点から物事に取り組みます。たとえば、このすべての量のデータを処理することは理にかなっていますか、それともサブセットを処理できますか?これは最小限のデータセットですか?ソリューションがロケットサイエンス/非常識な側面に少しある場合、可能な限りシンプルにするために何ができますか?より遅いプラットフォームでは、そのような順調にどのようにうまくいくでしょうか、そしてそれはどれだけうまく拡大しますか?等々。そしてもちろん、通常のプロファイルはマイクロ最適化を誘導します。

デジタルファウンドリー:IDTECH5が多くのZenimaxタイトルに展開されているのを見ました - IDTECH6は、他の開発者にとって同様にポータブルになるように設計されていますか?

ロバート・ア・ダフィー:私たちのエンジン開発は、一般に、アクティブ開発におけるタイトルのニーズに導かれています。エンジンテクノロジーを販売またはライセンスしようとしている企業とは異なり、合理的に専用になるという贅沢があります。

私たちは、より広範な機能セットに対応するために、時間の経過とともにテクノロジーの機能を拡大しています。また、さまざまなスタジオ間で多くのテクノロジー共有を行うことも注目に値します。姉妹スタジオが本当にうまく何かをしている場合、私たちはそのようにホイールを再発明しようとしません。 - はるかに速いです。

デジタルファウンドリー:idtech6の次はどこですか?興味のある主要な領域はありますか?

ロバート・ア・ダフィー:ツールでのより良い開発者サポートは、アートとデザインのパイプラインを改善することが重要な焦点であるため、主要な短期的な目標です。 E3 2016で「Doom Universe」VR Techデモを紹介し、VRハードウェアでの以前の作業に基づいて構築されており、ソフトウェアの側面をかなり強く推進しています。テクノロジーベースは、90fps+で極端な忠実度を提供するために本当に素晴らしい立場にあると感じています。