タグ付けされた質問 「vsync」

5
1秒あたりのフレーム数を制限する利点は何ですか?(もしあれば)
私はOpenGLでシンプルなゲームに取り組んでおり、ディスプレイの初期化と入力にSDLを使用していますが、タイミングに関しては2つの選択肢があります。最適なTimePerFrame-theTimeTakenToRenderでスリープ状態にある1つ目は、最適なTimePerFrameの秒数= 1 / theFramerateCapです。(vsyncを使用するのと同等であるため、これが必要かどうかは完全にはわかりません。これはより正確かもしれません。私の仮定が正しい場合、SDL + OpenGLがデフォルトでvsyncを持っているかどうかを教えてください。もう1つは、最後のフレームがレンダリングされてからの時間を測定し、それに応じて移動を調整することです。(フレームのレンダリングにかかる​​時間が短いほど、そのフレーム内でのエンティティの移動が少なくなります)。パフォーマンス、およびフリッカーの減少などに関して、これら2つの方法の長所と短所は何ですか?
13 opengl  sdl  frame-rate  vsync 

3
OpenGLが実際に画面を更新するのにどのくらい時間がかかりますか?
キー入力に応じてさまざまなものを描画する単純なOpenGLテストアプリをCで作成しています。(Mesa 8.0.4、Mesa-EGLおよびGLFW、NVIDIA GTX650を搭載したPC上のUbuntu 12.04LTSで試した)。ドローは非常にシンプル/高速です(回転三角形タイプのもの)。私のテストコードは、フレームレートを意図的に制限するものではなく、次のようになっています。 while (true) { draw(); swap_buffers(); } 私はこれを非常に注意深く計時しており、1つのeglSwapBuffers()(またはglfwSwapBuffers、同じもの)呼び出しから次の呼び出しまでの時間は〜16.6ミリ秒であることがわかりました。eglSwapBuffers()描画されたものは非常に単純ですが、呼び出し後から次の呼び出しの直前までの時間は、それより少しだけ短くなります。スワップバッファの呼び出しにかかる時間は1ミリ秒未満です。 ただし、アプリがキーの押下に応じて描画内容を変更してから実際に画面に表示されるまでの時間は、> 150ms(約8〜9フレーム)です。これは、画面とキーボードを60 fpsでカメラで記録して測定されます。 したがって、質問: スワップバッファーの呼び出しと実際に画面に表示される呼び出しの間の描画はどこにバッファーされますか?なぜ遅れるの?アプリが常に画面の前に多くのフレームを描画しているようです。 OpenGLアプリケーションは、画面にすぐに描画するために何ができますか?(つまり、バッファリングなし、描画が完了するまでブロックするだけです。高スループットは必要ありません。低遅延が必要です) 上記の即時抽選をできるだけ早く行うためにアプリケーションは何ができますか? アプリケーションは現在、実際に画面上にあるものをどのようにして知ることができますか?(または、現在のバッファリング遅延はどのくらいの長さ/何フレームですか?)

1
リフレッシュレートの異なる複数のモニターでレンダリングを処理するにはどうすればよいですか?
ユーザーが解像度と垂直同期間隔が異なる2台以上のモニターを使用している場合に発生する可能性のある状況に対処するための最良の方法は何ですか? これは、ゲームのタイムステップが固定されており、ウィンドウモードで実行されている場合に当てはまります。一方のモニターのフレームレートが60.056で、もう一方のモニターのフレームレートが59.94である場合、垂直同期は最終的にその仕事に失敗します。ゲームウィンドウがメイン画面から別の画面に移動した。 タイムステップが他の同期レートに適切に調整されていないため、一時的なエイリアシングも発生します。ゲームは通常、この問題にどのように対処しますか?
8 vsync 

2
AndroidのVSync /実際の30FPS
一部のデバイスでフルスピードで実行できないゲームに取り組んでいます。Tegra2では、多くの最適化により、パフォーマンスは約40 fpsです。フレームレートは安定していますが、アニメーションが十分にスムーズではないため、vsyncが必要です。 2.3 Android SDKでは、EGLライブラリーをネイティブで使用できます。だから私はeglSwapIntervalを使用しようとしますが、成功しません。で、このGDC紙、Tegra2はそれを行うことができますようです。 Ps:一定のFPSを強制するThread.sleep()は許容できるソリューションではありません
8 android  vsync 

2
XNA 4.0でより高いFPSを有効にするにはどうすればよいですか?
FpsCounter DrawableGameComponent(コードにリンクされている、それは長いです)を作成しました。それはうまくいきます:それは通常60.0 fpsを表示します。ゲームループを人為的に遅くすると、低下します。 現時点での私の「ゲーム」は、キーボードで制御される単一のスプライトなので、1秒あたり60フレームよりも頻繁にレンダリングできるはずです。 垂直同期をオフにするとFPSの上限が増えると考えました。 public Game1() { _graphics = new GraphicsDeviceManager(this) { PreferredBackBufferWidth = WindowWidth, PreferredBackBufferHeight = WindowHeight, SynchronizeWithVerticalRetrace = false, }; _graphics.ApplyChanges(); Content.RootDirectory = "Content"; } ただし、上記のコードはvsyncをオフにする必要があるように見えても、そうではないようです。私のコンストラクタ、またはおそらく私のFPS計算に何か問題がありますか?または、フレーム数を制限している可能性のある何か他にありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.