受賞歴のある人気ゲームシリーズHITMANフランチャイズの開発会社として知られるIO InteractiveはHITMAN 2にDirect X 12を追加しました。 これにより、HITMAN 2のパフォーマンスが向上したようです。
DirectX 12がHITMAN 2のパフォーマンスを加速させる
最近のアップデートでDirectX 12をHITMAN 2で利用できるようになり、多くのプレイヤーからパフォーマンス向上報告が上がっています。 HITMAN 2ではDirectX12の複数のCPUコアによるレンダリング分散する機能を使っています。
これにより、フレームタイムを大幅に短縮できます。 実現出来る利点は、ゲームコンテンツと利用可能なハードウェアの両方に依存します。
超高精細グラフィックスにはCPUとGPUの両方を動かす必要がある
マイアムやムンバイなどHITMAN 2のレベルは非常に詳細な環境で開発されており、プレイヤーの行動に反応する複数のインタラクションシステムを備えたNPCでしめられています。
これらのゲームレベルをレンダリングするには、フレーム毎に1万回を超えるドローコールが必要となります。 シングルスレッドのレンダラではすべての描画呼び出しをGPUに送信するのに十分な時間がフレームないにないため、単純にCPUのボトルネックとなってしまいます。
DirectX 12では描画呼び出しを複数スレッドに分散させることが出来るため、従来よりもゲームエンジンは多くのレンダリング作業が可能になりました。 これにより、複雑なゲームレベルのフレームタイムが改善され、将来さらに詳細なレベルで新しいコンテンツを作成することが出来るようになります。
混雑した複雑なHITMAN 2 AIは非常にCPUを集中的に使うため、利用可能なハードウェアリソースを効率的に使うアーキテクチャを構築しました。 HITMAN 2で使われているGlacierエンジンはジョブスケジューラを活用し利用可能なコア全体にCPUワークロードを分散するため、Direct X12を利用するために必要なエンジンインストラクチャは用意されています。
マルチスレッドレンダリング
Direct X12のゲームエンジンのジョブスケジューリングメカニズムを活用し、使用可能なCPUコア全体にレンダリング送信を分散できます。 複雑なゲームレベルではこれによりGPUにレンダリングを送信するために必要な時間を大幅に短縮することが出来、その結果フレームタイムが大幅に短縮されます。
下記のグラフはスタッター分析のパフォーマンステスト結果を示しています。 垂直方向はフレーム時間を示し(小さい方がよりよい)、水平方向にはパフォーマンスサンプルのパーセンタイムが示されています。
DirectX 11の場合キャプチャされたフレームの99%がハードウェアで28.2ms以内にレンダリングされていますが、DirectX12の場合キャプチャされたフレームの99%が20.1ms以内にレンダリングされます。
このグラフはすべてのサンプルでフレームタイムが大幅に短縮されていることになります。 これにより、よりスムーズなゲーム体験が可能になります。 例えば、DirectX11では99%が35fpsでレンダリングされていたとすれば、DirectX 12では50fpsまたは43%の改善が行われることになります。
データはAMD Fury XGPUを搭載した6コアHaswell CPUで収集されました。 同等以上のGPUと少なくとも4コア以上のCPUを搭載した環境の場合、PCパフォーマンスの向上が予想されます。
上記のような機能を備えていない場合、DirectX11バージョンのHITMAN 2をおすすめします。 DirectX11の実装ではローエンドシステムで若干パフォーマンスが向上します。 これはDirect X12はゲーム側で追加の作業を必要とするため、場合によってこれによるオーバーヘッドがDirectX11バージョンと比較してパフォーマンスが低下することがあるからです。
DirectX12の実装は現在さらなる最適化が進められており、今後追加設定でパフォーマンスの改善を期待していますが、DirectX11は性能が高くないデバイスを使っている人にとっては最良の選択しかも知れません。
[st-card-ex url="https://devblogs.microsoft.com/directx/directx-12-boosts-performance-of-hitman-2/" target="_blank" rel="nofollow" label="" name="" bgcolor="" color="" readmore="続きを見る"]
[amazon_link asins='B079VH74BQ' template='auto-ts' store='api-wpxxxx314320-22' marketplace='JP' link_id='a0766d4a-e6ce-4943-b09c-dfb167f82b4f']
--