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

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

リフレッシュレートが 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フレームじゃなくなる、計算は乱れます。

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

アバター
あたっしゅ
記事: 667
登録日時: 14年前
住所: 東京23区
連絡を取る:

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

#2

投稿記事 by あたっしゅ » 5年前

1. フレーム数でなく、実際の経過時間を基に計算する。
2. 処理落ちが問題と無いようなモノは、1 ステージ 30 分もやらない。
VTuber:
[香車]東上☆Aho(暎帆)☆海美
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

返信

“C言語何でも質問掲示板” へ戻る