シザー テスト (Direct3D 9)

ハサミ テストでは、レンダー ターゲットのユーザー定義の四角形サブセクションである、ハサミの四角形の外側にあるピクセルをカリングします。

ハサミの四角形を使用して、ゲーム ワールドが描画されるレンダー ターゲットの領域を示す場合があります。 四角形の外側の領域はカリングされ、ゲームの GUI に専念できます。 ハサミテストでは、長方形以外の領域をカリングすることはできません。

ハサミの四角形はレンダー ターゲットよりも大きく設定することはできませんが、ビューポートよりも大きく設定できます。

ハサミの四角形は、デバイスのレンダリング状態によって管理されます。 renderstate を TRUE または FALSE に設定することで、ハサミ テストが有効または無効になります。 このテストは、フラグメントの色が計算された後、アルファ テストの前に実行されます。 IDirect3DDevice9::SetRenderTarget は、ビューポートのリセットに似た完全なレンダー ターゲットにハサミの四角形をリセットします。 IDirect3DDevice9::SetScissorRect は stateblocks によって記録され、 IDirect3DDevice9::CreateStateBlock はすべての状態設定 ( D3DSTATEBLOCKTYPE の値D3DSBT_ALL) で記録されます。 シザー テストは、デバイス IDirect3DDevice9::Clear 操作にも影響します。

// Methods
HRESULT IDirect3DDevice9::SetScissorRect(CONST RECT* pRect); 
HRESULT IDirect3DDevice9::GetScissorRect(RECT* pRect); 

// New RenderState, values are TRUE or FALSE 
D3DRS_SCISSORTESTENABLE 

// New hardware cap 
D3D9CAPS.RasterCaps -> D3DPRASTERCAPS_SCISSORTEST;

既定のハサミ四角形は、完全なビューポートです。

ハサミテストは、次の図に示すように、ピクセルシェーダーまたは固定関数パイプラインによってピクセル処理が完了した直後に行われます。

他の手順に対してハサミ試験を行う場合の図

ピクセル パイプライン