リフレッシュレートが 60Hz 未満の場合のFPS制御
Posted: 2019年10月29日(火) 19:13
DXライブラリを使って、FPS制御プログラムを組んでます。無事に動きますけど、ティアリングが発生します。そのため、垂直同期を有効にし、だが新たの問題が発生しました:垂直同期を無効にする時は、秒に 60 フレームの出力で安定していますが、垂直同期を有効にするとたまにフレームドロップする。
自分のパソコンは 60Hz のリフレッシュレートに設定していますが、実際のリフレッシュレートは 59.920Hz です(この二つのサイトに測定できる:www.testufo.com/refreshrate と www.vsynctester.com)
ただ 0.08 Hz の差ですが、実際秒に更新する回数は 59・60 の二つの状況がある。そのためフレームドロップが発生し、たまに「カクつき」が発生する。だがフレームドロップしないと処理落ちの時の対処が出来ない、そして 30 分後は 144 フレーム、60 FPS なら 2.4 秒の差が生じる。
もしプログラムの目標FPSを 59.92 に設定しますと、垂直同期有効の場合もレームドロップしない、でもこれはじぶんのパソコンに測定した結果、DXライブラリでは 60 Hz しか取得出来ない。そして1秒の長さも60フレームじゃなくなる、計算は乱れます。
これはどうやって対処するのは良いか分からない…いい方法があれば教えてください。
自分のパソコンは 60Hz のリフレッシュレートに設定していますが、実際のリフレッシュレートは 59.920Hz です(この二つのサイトに測定できる:www.testufo.com/refreshrate と www.vsynctester.com)
ただ 0.08 Hz の差ですが、実際秒に更新する回数は 59・60 の二つの状況がある。そのためフレームドロップが発生し、たまに「カクつき」が発生する。だがフレームドロップしないと処理落ちの時の対処が出来ない、そして 30 分後は 144 フレーム、60 FPS なら 2.4 秒の差が生じる。
もしプログラムの目標FPSを 59.92 に設定しますと、垂直同期有効の場合もレームドロップしない、でもこれはじぶんのパソコンに測定した結果、DXライブラリでは 60 Hz しか取得出来ない。そして1秒の長さも60フレームじゃなくなる、計算は乱れます。
これはどうやって対処するのは良いか分からない…いい方法があれば教えてください。