スワップチェーンとは何ですか?
スワップチェーンは、実際のモニターまたは他のデバイスに表示される前に画像をレンダリングするために使用される一連のフレームバッファまたはコンピューターメモリの場所です。スワップチェーンには、最初のまたはアクティブなバッファーが現在ディスプレイに表示されているものとして識別されるため、常に少なくとも2つのフレームバッファーがあります。 1つのFrameBufferが表示されている間、次のバッファーをレンダリングおよび準備することができ、必要に応じてデバイスに交換できます。スワップチェーンを使用すると、ハードウェアとソフトウェアのタイミングの間の競合のために発生する問題のいくつか、およびディスプレイデバイスに直接レンダリングするために表示されるグラフィカルなアーティファクトが排除できます。
モニターに表示される方法は、指定された数のシーケンスを指定されたメモリの領域に配置する問題です。このメモリの領域にあるものは何でも、毎秒数回画面に描かれています。画面は左上隅から水平線に描かれています右下隅に。画面が次のフレームを起動している瞬間、画面の右下隅から左上隅に移動すると、垂直リトレースとして知られています。
スワップバッファーの実装は、垂直リトレース中に画面にのみ描画します。このタイミングがオフになっている場合、またはプログラムがフレームがレンダリングされている期間中に画面に描画しようとする場合、涙として知られるグラフィカルな異常が現れる可能性があります。これは、ディスプレイデバイスのメモリ内の画像がレンダリングの途中で突然変更され、ディスプレイの片側が最後のフレームを表示し、画面の残りの部分が新しいフレームを表示すると発生します。
シーンを前もってフレームバッファにレンダリングすることにより、表示される次のフレームが既に準備されており、表示メモリにすばやく押し込むことができるため、表示されます。 1つの画像が表示されている間、次の画像はバックバッファーとも呼ばれる非アクティブなフレームバッファー。これにより、滑らかなアニメーションと視覚効果が生成され、涙を防ぐために正確にタイミングを出すことができます。
「スワップチェーン」という用語は、アクティブなフレームバッファの前に描画されるフレームの数に応じて、より一般的に二重バッファリングまたはトリプルバッファリングとして知られています。ナノ秒またはミリ秒のタイミングアルゴリズムを使用することは、スワップチェーンを使用して、モニターの最大フレームレートが超えず、プログラムがシステム上に独自の処理とリソースをペースできるようにすることの不可欠な部分です。適切に実装されている場合、スワップチェーンを使用すると、ディスプレイデバイスのプロパティやアニメーションの単一のフレームをレンダリングするのにかかる時間に関係なく、スムーズなアニメーションになります。