どうも、蜂ノコだ。
皆さんはゲームをプレイするときに遅延について気にしたことがあるだろうか。
コントローラーやマウスキーボードなど遅延、モニターの遅延などを想像するかもしれない
そもそもレンダリング遅延とは
まずレンダリングとは、この場合グラフィックや映像などの描画を処理することだ。
そこに遅延が少なからず発生する。
ゲームプレイ中にレンダリング遅延を調べるにはAlt+Rで見ることができる。しかし注意点はNVIDIAのGeforceやRTX系じゃないと調べることができない。
レンダリング遅延における検証
さてここからが本題だ。
では何故、レンダリング遅延がゲームプレイにも影響を及ぼすのだろうか。
実際にApex legendsを利用して検証してみた。
私のPC環境は次の通りだ。
CPU : Intel core i5 4460
GPU : Geforce GTX1650
メモリ : 16GB(8GBx2)
必要最低限の情報だけだが、かなり世代が前のいわゆるHaswellおじさんである。正直つよつよPC欲しい…。
さて検証するにあたっていくつか条件をつけて実験をしてみた。
- FPS(フレームレート)を60fps固定と無制限では遅延に差が出るのか。
- 60fps固定にして負荷を上げると遅延はどう影響が出るのか
- 低画質と高画質を60fpsに固定したときにどれくらい差がでるのか
この3つを実験してみた。
解像度は1920×1080,設定はアンチエイリアシング以外は無効または低
テクスチャーの割り当てもなしに設定している。
FPSを60fps固定と無制限での遅延
まずAlt+Rキーを同時押ししてこのような画面がどこかに出てくる。
筆者の場合、設定で項目を増やしている。
この画像で赤線部分のレンダリング遅延に注目して「Apex Legends」の射撃訓練所にて走り回ったり射撃をしたりの行動を起こして検証を行った。これはフレームレートが多い場合と固定した場合の遅延がどうなるのかという目的がある。
結果は次の通りになった。
60fpsに固定したほうがレンダリング遅延は少ないという結果になった。無制限の場合フレームレートをできる限り出そうとするのでGPUとCPU使用率が共に上がっていた。
一方60fps固定にした場合、遅延が僅かに低くなっていただけでなく数値も安定していたようにも感じた。
つまりフレームレートを制限した方が遅延が少ないということがわかった。
60fpsに固定し、負荷による遅延
次にフレームレートを60fpsに固定し、負荷の大きさによる遅延を検証した。
起動オプションからfps_max 60にしてApexの設定にある解像度適応の目標FPSを60に設定し適応型スーパーサンプリングを無効と有効にすることで検証した。
適応型サンプリングとは目標FPSよりも高い数値が出ている場合、目標FPS以上のフレームレートを犠牲にして映像品質を上げるものである。
結果は次の通り
これはかなりの差が出たように見える。
適応型スーパーサンプリングは画質重視の設定なため負荷が大きくなるのだ。
低画質と高画質を60fpsに固定したときの遅延
次にグラフィック設定をすべて高にした場合と低にした場合。どちらもフレームレートを固定、60fps張り付き状態にした。なお目標FPSの設定はオフにしてある。
結果は次の通り。
個人的に面白い結果が出た。
フレームレートが一緒なのに負荷が大きくなる設定になると遅延が増加した。
しかし、たかが数msなのだがそうも言っていられないのがこの遅延である。
試しにテルミットグレネードを2個投げて2倍サイトで覗き込んでみると遅延は大幅に増え、30msを超えた。解像度をQHD(2560×1440)にすると66msにまで……。
これは一般の人でも感じられる遅延でとてもじゃないが快適とは言えない。
フレームレートも落ちて視認性も悪ければ操作遅延も感じられる。
結論
負荷が大きくなればなるほど遅延も大きくなる。
レンダリング遅延を改善するには
さてこのレンダリング遅延をより少なくするにはどうしたら良いのだろうか。
言ってしまえば負荷さえ小さくなれば遅延も小さくなる。
上記の検証も兼ねて筆者が思いつく方法をいくつか紹介していこう。
- 必要以上にフレームレートを出したりせずに制限する。
- グラフィック設定を低くする&解像度を落とす
- 60fpsに制限した上で目標fpsを60に設定する
- 根本的にグラフィックボード、またはPCを買い換える
それぞれを詳しく説明していこうと思う。
必要以上にフレームレートを出したりせずに制限する
これは最初の検証でも行った方法だ。
fpsを制限することによって必要以上にフレームレートを出さなくなり、処理に余裕ができるからだ。
ただ高性能なグラフィックボードの場合60fps固定や144fps固定にしても遅延は微々たるものになるかもしれないので自分のPCのスペックに合わせて制限すると良いだろう。
またフレームレートの制限をすることによって無駄な消費電力が減り、GPUの発熱も抑えることができるので高性能なグラボを搭載しているPCでもやっておいて損はないだろう。
グラフィック設定を低くする&解像度を落とす
こちらも検証結果からもわかることだ。
グラフィック設定を高くしたほうが負荷が大きくなるために遅延も大きくなっていた。
アンビエントオクルージョン(AO)など光や陰などに関する設定は特に重い上に必要のない設定なのでこだわりがないのなら無効化したほうが良い。
また解像度を落とすことで負荷を抑えることもできるが荒々しくなるので敵が視認しにくくなったり遠くが見えなかったりするので画質落ちるのが嫌だという人にはおすすめしない。
60fpsに固定した上で目標FPSを60に設定する
これはApexの設定に関することなのだが、60fpsに固定しても爆撃やテルミットなど重たいシーンが度々あったりする。またマップによっては重たいマップも存在しており60fpsを下回ることもある。
そう私みたいにロースペックなPCだと……。
そこでグラフィック設定にある解像度適応の目標FPSを60に設定するという方法だ。
これは60fpsを下回りそうなときに解像度を一時的に下げてフレームレートを維持するという方法だ。
高スペックなPCではあまり必要性はないが、フレームレートを安定させることができる上に遅延もバカみたいに大きくなることもなくなるのだ。
ただし欠点はある。
解像度が低くなって視認性が悪くなってしまうということ。
そして遠距離がチリチリしたように見えてしまい視認性が悪化してしまうということだ。
根本的にグラフィックボード、またはPCを買い換える
自分のパソコンが低スペックなのであれば最新のPCに買い換えることでこのレンダリング遅延は解消される。RTX3070やRTX3080tiなどを搭載したPCであれば遅延もかなり解消される。
ツクモに寄ってRTX3070搭載PCを触ったことがあるのだが操作感が全然違うことがとても印象深かった。とてもスムーズでほぼ遅延を感じなかったくらいだ。
ただここまでになると最終手段となるので、あまりにも低スペックなPCであれば買い替えを検討したほうが良いだろう。
まとめ
今回の検証でわかったこと
- フレームレートは固定することで遅延を抑えられる。(消費電力と発熱を抑えられる効果も)
- 画質設定を上げると負荷が大きくなるので遅延が増加する傾向にある。
- つまり負荷が大きくなればなるほどレンダリング遅延が大きくなり、操作にも影響を及ぼす。
以上だ。
おわりに
いかがだっただろうか。今回の検証は個人的にはなかなか面白い結果が出たと思っている。
よくGPU使用率が遊んでいて30%くらいしか使われていないとか思うかもしれない。確かに最適化されていない場合はフレームレートが出ないこともあるだろう。
しかしフルパワーでGPU使用率を100%に近づけてしまうのも実は遅延が大きくなってしまうということもわかっている。いわゆる負荷が大きいということだ。
つまりGPUはそれなりに余力を持たせたほうが遅延も少なくなるのだ。
最大でもGPU使用率が70~80%あたりが理想的なのかもしれない。あくまでも個人的な感想だけど。