Stencil Test (ステンシルテスト)は、ゲームグラフィックスのレンダリングや最適化(テクニカルアート)において極めて重要となる技術用語です。GPUがピクセルを描画する際、ステンシルバッファに書き込まれている整数値とシェーダーの条件式を比較し、特定の型紙(マスク)の範囲内でのみ描画を許可する高速カリングステージの解説。

現実世界での例え:スプレーアートで星を描くために、壁に当てる『真鍮の切り抜き型紙(ステンシルバッファ)』の穴判定

どんなに大量の塗料(オブジェクトピクセル)を上から吹き付けても、型紙の穴が空いた部分(ステンシル値が一致した画素)だけにピタッと色が残り、それ以外のはみ出たスプレーは瞬時に弾かれて消え去る、極めてシャープな型抜き描画システムです。

Stencil Test (ステンシルテスト) concept infographic diagram

図:Stencil Test (ステンシルテスト)の基本的な処理フローと仕組みを日本語表記で分かりやすく図解したインフォグラフィック

詳細な仕組みと動作原理

マスク用の板オブジェクトのシェーダーでステンシルに「値:1」を書き込んでおき、中身の別世界オブジェクトのシェーダー側で「ステンシルの値が1のピクセル以外は描画しない(ZTestと同様に破棄)」という比較テストを設定します。