G-Buffer (Gバッファ / ジオメトリバッファ)は、ゲームグラフィックスのレンダリングや最適化(テクニカルアート)において極めて重要となる技術用語です。ディファード・シェーディングにおいて、画面上の各ピクセルにおけるオブジェクトの色、法線、深度、滑らかさなどの形状(ジオメトリ)情報を一時保存する複数の巨大なテクスチャ群の解説。

現実世界での例え:料理をテーブルへ運ぶ前に、『お皿(Gバッファテクスチャ)ごとに肉・野菜・タレ』を小分けに配置する一時的なパレットボード

G-Bufferは、「完成した絵(スクリーン画面)を一気に塗る代わりに、絵を構成する要素を『色のお皿』『でこぼこ(法線)のお皿』『奥行き(深度)のお皿』にそれぞれ小分けに一時保存しておく巨大なトレイ(テクスチャ)のセット」です。すべてのトレイが揃った後に、ライトの光(ライト計算)を一括でこれらのトレイの上から計算して混ぜ合わせることで、オブジェクトの個数を気にせずに無制限のライティングが実現します。

G-Buffer (Gバッファ / ジオメトリバッファ) concept infographic diagram

図:G-Buffer (Gバッファ / ジオメトリバッファ)の基本的な処理フローと仕組みを日本語表記で分かりやすく図解したインフォグラフィック

詳細な仕組みと動作原理

Gバッファ(Geometry Buffer)の各レンダーターゲット(RT0: Albedo, RT1: Specular/Smoothness, RT2: Normal, RT3: Lighting/Depth)のデータ構造とビット数を正しく理解し、不要な情報書き込みを最小限に抑えます。