「スワップチェーン」の版間の差分

編集の要約なし
編集の要約なし
 
(同じ利用者による、間の1版が非表示)
1行目: 1行目:
'''スワップチェーン'''([[英語]]:Swap Chain)とは、主に[[コンピューターグラフィックス]]で用いられる1つのフロントバッファと、1つ以上のバックバッファで構成されるフレームバッファを管理するための機構(コレクション)である。
'''スワップチェーン'''([[英語]]:Swap Chain)とは、主に[[コンピューターグラフィックス]]で用いられる「1つのフロントバッファ」と「1つ以上のバックバッファ」で構成される[[フレームバッファ]]を管理するための機構(コレクション)である。


== 概要 ==
== 概要 ==
1つのフロントバッファと1つのバックバッファ(計2つ)という最小構成のスワップチェーンは「[[ダブルバッファ]]」と呼ばれる。
フロントバッファとバックバッファがそれぞれ1つ(計2つ)という最小構成のスワップチェーンは「[[ダブルバッファ]]」と呼ばれる。


[[ダブルバッファ]]の場合は単純なスワップであるが、
[[ダブルバッファ]]の場合は単純なスワップ操作であるが、トリプルバッファ以上になるとバッファの遷移が複雑なリング状になる。それをダブルバッファ同様にスワップ操作っぽい[[API]]を叩くだけでグルグル回るようにしたものを「スワップチェーン」と呼ぶことが多い。
トリプルバッファ以上になるとバッファの遷移がリング状になるので、
 
それを「スワップ操作」だけでグルグル回るようにしたものを「スワップチェーン」と呼ぶことが多い。
== 垂直同期 ==
ディスプレイが描画処理している最中にスワップチェーンの切り替えを行うと描画内容が狂う。
このような現象を抑制するため「[[垂直同期]]」を利用することが多い。


== 実装 ==
== 実装 ==
[[github]]に転がっている[[オープンソース]]の各種フレームワークではどのようにスワップチェーンを実装しているのか眺めてみた。
[[github]]に転がっている[[オープンソース]]の各種[[フレームワーク]]ではどのようにスワップチェーンを実装しているのか眺めてみた。


=== リングバッファ ===
=== リングバッファ ===
34行目: 36行目:


=== キュー ===
=== キュー ===
一部の実装では「[[キュー]]」を用いてものもあった。コメントによるとキューは前述のリングバッファと異なりバッファ数が可変なので速度的に有利であると書かれていた。本当かどうかは知らない。バッファの動的確保に時間がかかりそうな気がするがどうなんだろうか。
一部の実装では「[[キュー]]」を用いてものもあった。


== 動画の切り出し ==
== 動画の切り出し ==
43行目: 45行目:
== 関連項目 ==
== 関連項目 ==
* [[ダブルバッファ]]
* [[ダブルバッファ]]
* [[垂直同期]]


[[category: 3DCG]]
[[category: 3DCG]]