ステンシルバッファーとは、
コンピュータグラフィックスにおける描画処理の最適化技術の一つです。GPUや
CPUの負荷を軽減するために、画面に表示する必要のない部分、例えば
カメラから見て陰になっている部分などの描画を省略する際に利用されます。
この技術は、「ステンシル」という名前が示すように、型紙のような役割を果たします。具体的には、描画する領域を限定し、指定された領域(型紙に相当)内のみを描画することで、無駄な処理を削減します。このことから、ステンシルバッファーは描画の「マスク」として機能するとも言えます。
ステンシルバッファーは、主に
Zバッファーと組み合わせて使用されます。
Zバッファーがポリゴンの前後関係を保持するのに対し、ステンシルバッファーは、より詳細に描画範囲を制御できます。例えば、特定のオブジェクトの内部だけを描画したり、特定の形状の範囲内だけを描画したりするなどの複雑な処理が可能になります。また、ステンシルバッファーは、静的なマスクだけでなく、動的に変化するマスクを適用できるのが特徴です。これにより、時間経過に伴って描画範囲を変化させるといった高度な描画効果を実現できます。
通常、ステンシルバッファーは、カラーバッファーや
Zバッファーと同じ
VRAM(ビデオRAM)のメモリ空間内に格納されます。ステンシルバッファーに割り当てられるビット数は、8ビットであることが一般的です。この8ビットは、[0, 255] の範囲の数値を表現するために使用され、描画領域のマスクを生成します。また、ブール行列(nは割り当てられたビット数)としても使用でき、シーンの特定の部分の陰面処理に利用されます。
ステンシルバッファーは、2023年現在販売されているほぼすべてのGPUで利用可能な技術です。これにより、様々なグラフィックス環境で描画負荷を軽減し、より効率的なレンダリングが可能となっています。ステンシルバッファーを活用することで、より複雑でリアルなグラフィックス表現を実現しつつ、パフォーマンスを維持することができるようになります。これにより、ゲームや映像制作などの分野において、クオリティと効率の両立に貢献しています。