次の方法で共有


シザー テスト (Direct3D 9)

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

ゲーム ワールドが描画されるレンダー ターゲットの領域を示すために、シザー四角形を使用できます。 四角形の外側の領域はカリングされ、ゲームの GUI に専念できます。 シザー テストでは、四角形以外の領域をカリングできません。

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

ハサミの四角形は、デバイスのレンダリング状態によって管理されます。 シザー テストは、renderstate を TRUE に設定するか、FALSE 設定することで有効または無効になります。 このテストは、フラグメントの色が計算された後、アルファ テストの前に実行されます。 IDirect3DDevice9::SetRenderTarget、ビューポートのリセットと同様に、シザー四角形を完全なレンダー ターゲットにリセットします。 IDirect3DDevice9::SetScissorRect はステートブロックによって記録され、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;

既定のシザー四角形は、完全なビューポートです。

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

他のステップ に対してハサミ試験を実行するタイミングを示す図

ピクセル パイプライン