Stencil buffer とは

ステンシルバッファは、最新のグラフィックスハードウェア上にあるカラーバッファとデプスバッファに加えて、余分なデータバッファです。バッファはピクセル単位であり、通常は1ピクセルあたり1バイトの深さの整数値で動作します。深度バッファとステンシルバッファは、グラフィックスハードウェアのRAM内の同じ領域を共有することがよくあります。
最も単純なケースでは、レンダリング領域(ステンシル)を制限するためにステンシルバッファが使用されます。ステンシルバッファのより高度な使用法は、レンダリングパイプラインにおけるデプスバッファとステンシルバッファとの間の強い接続を利用する。たとえば、ステンシル値は、失敗したピクセルまたは深度テストに合格したピクセルごとに自動的に増減されます。
デプステストとステンシルモディファイアを単純に組み合わせることで、ステンシルシャドウボリューム、両面ステンシル、合成、デシリング、ディゾルブ、フェード、スワイプ、シルエット、複雑なプリミティブ間の交差点の輪郭線やハイライトなど、それらはしばしばいくつかのレンダリングパスを必要とするため、グラフィックスハードウェアに負担をかける可能性があります。
最も典型的なアプリケーションは、3Dアプリケーションに影を追加することです。平面反射にも使用されます。
ポータルレンダリングなどのその他のレンダリング手法では、ステンシルバッファを他の方法で使用します。たとえば、ポータルによって覆い隠された画面の領域を見つけ出し、それらのピクセルを正しくレンダリングするために使用することができます。
ステンシルバッファとその修飾子は、OpenGLやDirect3DなどのコンピュータグラフィックスAPIでアクセスできます。