のんびり生きてます/これから何をしましょうか?

「はやり」の波に乗ってみようと思っています。その挑戦と経過と結果を紹介しようと思っています。

★スポンサー

パソコンゲームでテアリングが出て困る!対策!

頑張って、パソコンでiRacingでレースゲームを始めたのですが、画面がギザギザして困っているので、悩んだ記録を残します。

 

現状

画面がギザギザになります。テアリングっていうそうです。

ギザギザの説明が難しいですが、お弁当に入っている緑のバランというか、指と指を右手と左手でお互いに挟む感じというか、くしを立てたときに、針のような部分が左向き、右向きに向いているような感じの映像になります。

 

特に、分かりやすいのが、レースゲームなのでコーナリングをしているときに発生して、景色が左右に流れるときに、横方向にギザギザになったり、カクカクしているような気がします。

 

設定状況は以下の通りです。

ゲーム側

垂直同期 オフ

FPS上限  60fps

画質   CPU、GPUが50%程度になるレベル。(Core i5 9600K+RTX2060なので、そこそこきれい)

 

NVIDIA

垂直同期 高速(Fast SYNC)

FPS上限  60FPS

画質   フルパワー(たぶん。電源マックス)

 

対策案と原理

今回購入したパソコン、ディスプレイにはG-SYNCという、ディスプレイとGPUを完全に同期させる便利な機能がありません。安物なので。

 

かといって、手軽にV-SYNC(垂直同期オン)にするわけにはいきません。レースゲームは60fpsで走ってるなら、1コマが大事です。コーナリング中でも200km/hで走ることもあります。秒速だと…。1秒で55mも動きます。1/60だと1m近くズレます。1/30の画面だと2m弱。車の幅は広いものでも2m。コースアウトもあり得ます。逆に、昔のレースゲームはよく30fpsでプレイできていたなーって驚きです。

 

harukin.com

 

ということで、わたしはもう高速のFast SYNCを使っていますが。それでも問題が発生しています。なんで???

 

たぶん、設定が悪い

ディスプレイが60Hzなので、FPSも60にすればいいや、GPUの負担も減るし、と思って60FPSにしています。でも、実際には56~60、走行中だと59と60を行ったり来たり。ここがネックになっているんじゃないかなって思っていました。

 

Fast SYNCは、GPUのフレームレートが60以上の場合は60でピッタリ同期させてくれます。で、59以下になると、同期をしなくなって59fps以下で画像を排出します。

 

ディスプレイ側はというと、59fpsで排出された画像は、Fast SYCNはGPUが低FPSの場合はディスプレイに同期されないので、ディスプレイの60Hzの表示タイミングを無視してドンドン画像が送られてきます。一般的に言われる、テアリングです。中途半端にデータが残った状態で次のデータが下半分とか四分の一とか、中途半端にずれた画像として表示されます。

そのズレた位置もズレるので、ギザギザ画像になるんだと思います。

 

さらに、60Hzのディスプレイが画像の遅れを受けた場合、一気に半分の30Hzでの受けになるそうです。一瞬かもしれませんが、データの受けがうまくいかない場合、その一コマを飛ばしてしまうために30Hzになるそうです。こちらがコマ落ち、カクカクと呼ばれるスタッタリングです。コーナリング中だけ発生が露骨なのは、視線の横移動は負荷が大きくて、RTX2060の60%設定で負荷が少なくても、それでも少しだけ処理が遅れているんだろうと思います。

 

設定の計画

60fps制限の時に56fpsまで落ちることがありますので、余裕をもって70PFS以上にします。

だからって、120FPSを常用すると同期されないで余った画像は捨てられるので、もったいないのでほどほどにします。60の倍数ならいいのかな?とか思いますけど、まずは70から始めて、無駄がない範囲で上げて、画像が破綻しない+電気代の無駄にならない範囲で下げます。

ゲーム側

垂直同期 オフ

FPS上限  70~段階的に120fps程度でテスト

画質   CPU、GPUが50%程度になるレベル。120fpsで70%を超えないように。

 

NVIDIA

垂直同期 高速(Fast SYNC)・ゲームはこれに従う設定で。

FPS上限  ゲーム側より多め?もしくは、こちらを上記の設定にする。

画質   フルパワー(たぶん。電源マックス)

 

効果

これにすることで、GPU側でディスプレイの60Hzよりも間違いなく高速な表示、演算ができるようにします。60Hzを下回ると、テアリングだけでなくスタッタリング(カクカクする)が発生するとのことなので、とにかく60FPSを下回らないようにします。なので、70から段階的に10fpsずつとか上げる予定です。

 

描画が早ければ、Fast SYNCで同期されるので、問題はありません。完全同期の場合は遅くなるのが間違いないので、それよりはOKです。70は60の倍数じゃないから心配だけど、とりあえずやってみる!

 

iRacingの場合、標準でFPS表示がオプション設定されているので、まずはここでテストします。

 

続いて、アセットコルサ、同じくコンペティツィオーネ、最後にrFactor2で設定します。

 

結果はまた改めてご報告します。

 

bokeboke