1

私は、頂点シェーダーとピクセルシェーダー(非常に基本的なもの)を使用して、Win7でDirectX9を使用するビデオキャプチャディスプレイアプリケーションを開発しようとしています。ただし、表示されている画像は、画面上の常に同じ場所で、多少の裂け目を示しています。スペックは以下の通りです

  • ビデオはウェブカメラを介してキャプチャされています
  • ディスプレイがフルスクリーンモードではありません
  • 画面のリフレッシュレートは60Hzです
  • D3DPRESENT_INTERVAL_ONEは、良好なリフレッシュレートを強制するために使用されています(一部のフォーラムで見つかりましたが、機能しません)

この最後のパラメーターを、D3DPRESENT_INTERVAL_ONEが一貫した(常に画面上の同じ位置にある)ティアリングを提供することを理解するためにのみ使用可能なすべてで変更してみました。

V-Syncを「有効にする」ことで問題が解決する可能性があることは知っていますが、Web上でこれに関する情報を見つけることができないようです(はい、DirectX9は古くなっています)。

4

1 に答える 1

1

D3DPRESENT_INTERVAL_DEFAULTそれがあなたに涙を与えないならば、使ってください。

このフラグはV-syncも有効にします。ドキュメントから:

D3DPRESENT_INTERVAL_DEFAULTはデフォルトのシステムタイマー解像度を使用しますが、D3DPRESENT_INTERVAL_ONEはtimeBeginPeriodを呼び出してシステムタイマー解像度を向上させます。これにより、垂直同期の品質が向上しますが、処理時間がわずかに長くなります。両方のパラメーターは垂直方向に同期しようとします。

于 2012-06-14T20:19:30.010 に答える