【初心者歓迎】スレを立てる前にココで質問を【Part9】
■ このスレッドは過去ログ倉庫に格納されています
0113名前は開発中のものです。
2005/10/07(金) 09:11:32ID:p+JYUjXYディスプレイは完全な60Hzではないからな。
この辺色々調べたんだけど、今のところ俺はこんな感じにしてる。
なぜガクーンってなるかっつーと、モニタとPCの誤差が徐々にたまって、
特定のフレームだけ極端な短時間しか与えられなくなるから。
で、そのシワ寄せが次のフレームに回ったりして、ガクーンってなる。
ということは1フレームあたり常に一定時間確保できるようにすればいい。
これは垂直同期を取れば解決できる。1フレームあたりきちんと16ms確保できるから。
だけど単にPresentに頼るだけの同期は、DirectXのトリプルバッファの罠で入力遅延にハマる。
でもこちらとしては、遅延が起こらないように画面への転送が終わるのを待ちつつ入力時間を確保したい。
そこで内部ループを120fpsとか240fpsとかの倍速でまわして、
実際に更新するのは2回に1回とか4回に1回とかにしてしまう。
これだと、例えば内部120fpsなら8ms、240fpsなら12msだけの計算時間が保障される。
という感じ。今のところこれで滑らかに動いてるよん
■ このスレッドは過去ログ倉庫に格納されています