それは Doom 2016 から始まりました。Switch への移植は非常に野心的だったため、不可能に思えました。しかし、それ以来、技術的に野心的な現世代コンソール タイトルの行列が任天堂コンソール ハイブリッドに移行し、4A Games の素晴らしい Metro Redux の登場で最高潮に達しました。非常に印象的な変換と、おそらく最も本物に近い一人称シューティング ゲームです。私たちが見たポート。それで、その秘密は何ですか?開発者は 5 年前の Nvidia モバイル ハードウェアからどのようにしてこのような素晴らしい結果を達成することができたのでしょうか?
「最初は、パフォーマンスの面で本当に大きな懸念がありました」と、4A の最高技術責任者、オレス・シシコフストフは認めます。 「ご存知のとおり、1.6 GHz ~ 1.75 GHz で動作する約 6 個半または 7 個の CPU コアを備えたベースの PS4/Xbox One から、1.0 GHz の 3 コアのみに減らすのは恐ろしいことだと思います。グラフィックスはスケールアップできるため、GPU は問題ありませんでした」たとえば、ゲーム シミュレーション コードよりもはるかに簡単です。」
CPU スペックの大きなギャップを考慮すると、変換作業の結果は確かに印象的です。 4A は、PS4 と Xbox One の既存の Metro Redux ゲームを翻訳することから始まりました (強調しておきますが、Switch はここで最終世代のポートを取得しません)。このプロセスは 4A チームが非常に迅速に実行しましたが、この初期バージョンはゲームでは 1 秒あたり 7 ~ 15 フレーム程度のフレーム レートしか管理できませんでした。ゲームは完全に CPU 依存でした。
システムを最適化するタスクを開始する前に、目標フレーム レートを PS4 と Xbox One の 60fps から 30fps に半減する必要がありました。 「まず、いくつかの最適化を Exodus から Redux コードベースにバックポートしました」と Shishkovstov 氏は説明します。 「その後、高レベルではアニメーション処理に重点を置き、低レベルではアセンブリに至るまで A57 から ILP (命令レベルの並列処理) を抽出することに焦点を当てました。GPU を使用していない場合、低レベルの最適化だけで 30Hz が不安定になりました。その後、ボーン LODding が到着しました – 安定したフレームレートに必要なヘッドルームがあったとしても、CPU [問題] は「解決」されました。
このように説明すると、Switch の CPU 制限に対する 4A の解決策は非常に簡単に思えますが、アセンブリ レベル (文字通り Switch ARM Cortex-A57 CPU クラスターのネイティブ言語) でのコーディングのプロセスは、簡単な作業ではありえません。アニメーションは多くのプロセッサ サイクルを消費するため、詳細レベル (LOD) トランジションをシステムに追加するというアイデアは非常に理にかなっています。
この後、4A は GPU の最適化に移り、すべてはグラフィックス API の選択から始まりました。同社には、最もパフォーマンスの高い低レベル API をサポートしてきた長い歴史があり、Metro Exodus はさまざまなマルチプラットフォーム リリースにわたって DX11、DX12、Vulkan、GNM 上で実行されています。 Switch 自体は OpenGL と Vulkan をサポートしていますが、最適なパフォーマンスを得るために、4A は Switch で最高のパフォーマンスを得るために Nvidia 自身が開発した API を選択しました。
「NVN は、NX 上で可能な限り最低のグラフィックス API です」と Shishkovstov 氏は説明します。 「CPU オーバーヘッドは無視できます。ほとんどの場合、数個の DWORD が GPU コマンド バッファーに書き込まれるだけです。うまく設計されており、クリーンで、ハードウェアの能力をすべて公開しています。たとえば、Vulkan よりもはるかに優れています。」
そして、ここで、Switch がどのようにして非常に少ないものから非常に多くのものを提供するかに特に興味を持っています。任天堂のハードウェアが最初に発表されたとき、私たちが Tegra X1 プロセッサを体験した唯一の経験は Shield Android TV でのもので、通常、前世代コンソールの変換はパフォーマンスが低下していました。 NVN はここで実際に重要な違いを生み出しているようで、4A は Nvidia Maxwell アーキテクチャへの直接アクセスを提供することを示唆しています。では、Metro Redux ではどのような Maxwell 機能が使用されているのでしょうか?
「それについて話していいかわかりませんが、どうやら私たちはそれらすべてを使用しているようです」とシシコフストフは説明します。 「私たちの GPU 最適化の多くは、メモリ帯域幅やオフチップ トラフィックの削減に焦点を当てていました。たとえば、NVN は、メモリ圧縮、タイル キャッシュの動作とビニング、メモリ レイアウト、エイリアシングなどの多くのコントロールを公開しています。たとえば、ストレート イミディエイト モード レンダリングなどです。は、G バッファの作成とシャドウ マップ レンダリング中にのみ使用されます。フォワード レンダリングや遅延ライティングを含む他のすべてのパスでは、タイル キャッシュに異なる設定のビニング ラスタライザーが使用されます。
この世代の多くのゲームと同様に、Metro Redux では、開発者が時間的スーパー サンプリング (4A で言うところの時間的超解像度) の使用に移行しています。アイデアは非常に単純です。従来のスーパーサンプリングは、開発者が選択したピクセル数にダウンサンプリングする前に、ネイティブよりも高い解像度でレンダリングするプロセスです。 TSR も基本的な考え方は同じですが、追加の詳細が代わりに過去のフレームから収集される点が異なります。この技術はスマートフォンのカメラの品質を向上させるために広く使用されていますが、ゲーム以外にも用途があります。
比較ツールを使用するには JavaScript を有効にしてください。
「これは、宇宙衛星から車のナンバーを読み取るための FBI のよく知られたソリューションです」と Oles Shishkovstov 氏は言います。 「問題は、Switch の GPU にとって非常にテクスチャ サンプリングと計算が重いことです。私たちは、大幅な品質の妥協なしに、はるかに安価なものを導き出さなければなりません。それは簡単ではありませんでした。私はそれに 1 か月以上費やしました – ようですMaxwell GPU ISA が今では私の母国語です。
「最終結果は 1080p で約 2 ミリ秒かかります。テクスチャ サンプルは 9 つだけで、計算は複雑です。また、副産物としてアンチエイリアシングも実行されます。ハードに押し上げても (1080p で発生します)、アルゴリズムは依然としてピクセル完璧なエッジとシャープなテクスチャの詳細を生成します。そして AA の品質だけが若干低下しますが、それは訓練された目でもほとんど見えません。」
Shishkovstov 氏は、時間的超解像度を使用することで、私たちが知っているネイティブ解像度レンダリングの概念は特に関連性がないと考えており、これによりいくつかの興味深い疑問が生じます。分析を振り返ると、個々のフレームからいくつかのピクセル数を引き出すことができたことがわかります。しかし、このようなゲーム、Modern Warfare 2019 や他の多くのゲームによって、画質に関して何らかの尺度を得る新しい手法を検討するようになりました。 Switch の Redux は PS4 バージョンほどきれいに見えませんが、前世代バージョンのロックされた 720p から Metro の同等の画像を取得すると、画質は別のレベルにあります。
ドッキングしている場合でも、ハンドヘルド モードで実行している場合でも、累積出力はそれぞれ 1080p または 720p ですが、画像の鮮明さはコンテンツに応じて調整されます。全体的な明瞭さの観点から見ると、選択されたテクニックはポータブルでプレイしたときに特に印象的ですが、4A がドッキング モードとハンドヘルド モードにわたってゲームをどのようにスケールしたのかという疑問が生じます。
「ドッキングすると 2 倍高速クロックの GPU が得られますが、帯域幅は中程度に増加するだけです。つまり、魔法のようにまったく 2 倍高速になるわけではありませんが、それでもかなり高速です」と Shishkovstov 氏は説明します。 「これにより、たとえば、より多くのオブジェクトのピクセルごとの速度をレンダリングできるようになり、その結果、TSR と AA がわずかに正確になりました。ハンドヘルド モードでは、HUD/武器の速度のみを描画します。これが私たちが許容できるすべてです。
「また、Redux コンテンツには多くのメッシュのジオメトリ LOD が不足していました。アート チームが Exodus の (巨大な) DLC で忙しかったため、欠落しているものをプログラムで生成しました。ドックとハンドヘルドの両方でオリジナルの PS4/X1 ジオメトリが使用されていますが、ハンドヘルドではより多くのジオメトリが使用されています」小さな画面ではほとんど目立ちませんが、アグレッシブな LOD 切り替えが可能です。ユーザー/ゲーマーの観点からは、ハンドヘルドは常に 720p、ドッキング時は常に 1080p、それ以外は同じです。」
Metro Redux ポートの優れている点は、目標の 30fps フレーム レートを維持する上での完全な一貫性です。 id Tech 6 の変換、The Witcher 3、Warframe、またはその他の Switch への「不可能な移植」のほとんどについて話している場合でも、一貫したパフォーマンス レベルが見つかることはほとんどないため、これは重要なポイントです。
「一貫して 30fps を達成できてうれしいです」と Shishkovstov 氏は語ります。 「60 近くに達する唯一の方法は、品質を大幅に低下させ、入力遅延を一貫させずに、1 つのシミュレーション フレームごとに 2 つのレンダー フレームを実行することです。それは私が払いたい代償ではありません。30 fps で実行すると、品質に妥協することはできません。マテリアルとライティング シェーダーは PS4 および Xbox One とまったく同じです。」
ゲームがなぜ 30fps で執拗に動作するのかというと、4A は過剰な最適化に原因があると考えています。 「TSR がなくても、ゲーム全体のフレームの 99 パーセント以上でハンドヘルド モードで 720p で一貫した 30fps を生成し続けます。TSR は 1080p/ドッキング モードでより[有用]です。」
改良された Switch ハードウェアが開発中であるという噂が続いているため、任天堂と Nvidia がどのような革新を選択するかを見るのは興味深いだろうと思いました。結局のところ、PlayStation 4 の設計の成功の多くは、ソニーが焦点を変え、開発者のフィードバックを取り入れたことによるものです。
「通常、CPU に依存しているため、コアの追加は間違いなくリストに含まれます。帯域幅と GPU パワーも決して損にはなりません」と Shishkovstov 氏は言います。 CPU パワーを最前線に置くというと意外に聞こえるかもしれませんが、グラフィックスはコア ゲーム コードよりもはるかに簡単に拡張できます。また、Switch のオーバークロック テストでは、グラフィックス コアのクロックアップよりも CPU 周波数の上昇の方が多くのゲームに影響を与えることが判明しました。
新しいハードウェアの話題ですが、ソニーとマイクロソフトの次世代コンソールについてはどうでしょうか?開発者はNDAの下にあるため、ハードウェアの技術的な詳細について話すことはできません。ただし、PS5 と Xbox Series X の両方が、リアルタイム レイ トレーシングのための GPU でのハードウェア アクセラレーション サポートを備えているという事実など、新しいマシンの重要な側面は広く知られています。
「私たちは完全にレイ トレーシングに取り組んでおり、古い学校のコードパス/技術を完全に削除しています」と Shishkovstov 氏は明らかにします。そして、Metro Exodus 以降 RT がどのように進化したかという観点から見てもどうでしょうか? 「社内では多くの実験を行い、これまでのところ素晴らしい結果が得られています。私たちが将来のプロジェクトに何を実装するかは、しばらくお待ちください。」