ここでは、フレームバッファについて説明します。
フレームバッファとは、フラグメントシェーダーから出力されたデータを一時的に保存しておく記憶領域です。
ブレンダーによるフラグメントごとの処理を終えたフラグメントの値はここに保持されます。
以下の表は、フレームバッファを構成する3つの記憶領域バッファについてまとめています。
| バッファの種類 | 用途 |
|---|---|
| カラーバッファ | カラーや、アルファを持つフラグメント値を描画します。 |
| ステンシルバッファ | 描画する領域を限定する情報を保持します。ステンシルテストに使用します。 |
| デプスバッファ | カメラからの奥行き情報を保持します。デプステストに使用します。 |
各バッファは、データを保持する際にいくつかの記録方式フォーマットを指定することができます。
以下の図は、カラーバッファ、ステンシルバッファ、デプスバッファのフォーマットについてまとめたものです。
フレームバッファを構成する各バッファのフォーマットは1ピクセルあたりのビット数が異なります。ビット数が少ないものは記録領域上に確保するバッファのデータサイズが小さくなる分、画面上の表示制度が低下します。
補足:
8 ビット のステンシルバッファを使用する場合、24 ビットのデプスバッファを組み合わせた、合計 32 ビットのフォーマットになります。
ここでは、画面に描画する際のアンチエイリアスについて説明します。
アンチエイリアスとは、ポリゴンを描画するさい、輪郭をなめらかにする手法です。
フレームバッファの描画倍率をディスプレイバッファより上げて、フレームバッファからディスプレイバッファに転送するさいに画像を縮小することでアンチエイリアスを適用できます。
ディスプレイバッファとは、フレームバッファから出力された画像が、実際に画面へ表示される絵として変換されたさいにその結果を置く記憶領域のことです。
VRAM とデバイスメモリに確保することができます。
以下の表は、 2 種類のアンチエイリアスの方法についてまとめたものです。
| 描画倍率の種類 | アンチエイリアスの適用される方向 | 必要なフレームバッファのサイズ |
|---|---|---|
| 2 × 1 | 画面の縦方向 | ディスプレイバッファの 2 倍 |
| 2 × 2 | 画面の縦横方向 | ディスプレイバッファの 4 倍 |