リフレッシュレートが 60Hz 未満の場合のFPS制御

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: リフレッシュレートが 60Hz 未満の場合のFPS制御

Re: リフレッシュレートが 60Hz 未満の場合のFPS制御

#2

by あたっしゅ » 5年前

1. フレーム数でなく、実際の経過時間を基に計算する。
2. 処理落ちが問題と無いようなモノは、1 ステージ 30 分もやらない。

リフレッシュレートが 60Hz 未満の場合のFPS制御

#1

by MKII » 5年前

DXライブラリを使って、FPS制御プログラムを組んでます。無事に動きますけど、ティアリングが発生します。そのため、垂直同期を有効にし、だが新たの問題が発生しました:垂直同期を無効にする時は、秒に 60 フレームの出力で安定していますが、垂直同期を有効にするとたまにフレームドロップする。

自分のパソコンは 60Hz のリフレッシュレートに設定していますが、実際のリフレッシュレートは 59.920Hz です(この二つのサイトに測定できる:www.testufo.com/refreshratewww.vsynctester.com

ただ 0.08 Hz の差ですが、実際秒に更新する回数は 59・60 の二つの状況がある。そのためフレームドロップが発生し、たまに「カクつき」が発生する。だがフレームドロップしないと処理落ちの時の対処が出来ない、そして 30 分後は 144 フレーム、60 FPS なら 2.4 秒の差が生じる。

もしプログラムの目標FPSを 59.92 に設定しますと、垂直同期有効の場合もレームドロップしない、でもこれはじぶんのパソコンに測定した結果、DXライブラリでは 60 Hz しか取得出来ない。そして1秒の長さも60フレームじゃなくなる、計算は乱れます。

これはどうやって対処するのは良いか分からない…いい方法があれば教えてください。

ページトップ