Microsoft DirectX 8.0 (Visual Basic) |
Microsoft® Direct3D® は、ステンシル バッファの内容をピクセル単位に調べる。ステンシル バッファの対応する値、ステンシル参照値、およびステンシル マスク値を使用して、ターゲット サーフェスの各ピクセルに対するテストを行う。テストにパスすると、Direct3D はアクションを実行する。このテストは次の手順で実行される。
これらのステップを次の例で示す。
(StencilRef And StencilMask) CompFunc (StencilBufferValue And StencilMask)
ここで、StencilBufferValue は、カレント ピクセルに対するステンシル バッファの内容である。StencilMask はステンシル マスク、StencilRef はステンシル参照値を表している。CompFunc は比較関数である。
このステンシル テストにパスすると、カレント ピクセルはターゲット サーフェスに書き込まれるが、失敗した場合は無視される。デフォルトの比較処理では、各ビット演算の結果に関係なく、ピクセルが書き込まれる (D3DCMP_ALWAYS)。この動作を変更するには、目的の比較関数を指定する CONST_D3DCMPFUNC 列挙のメンバを渡して、D3DRS_STENCILFUNC レンダリング ステートの値を変更する。