共用方式為


剪刀測試 (Direct3D 9)

剪刀測試剪刀測試剪刀矩形外部的圖元,這是轉譯目標的使用者定義矩形子區段。

剪刀矩形可用來指出繪製遊戲世界之轉譯目標的區域。 矩形外的區域會進行撲殺,並可用於遊戲的 GUI。 剪刀測試無法擷取非矩形區域。

剪刀矩形不能設定大於轉譯目標,但可以設定大於檢視區。

剪刀矩形是由裝置轉譯狀態所管理。 藉由將 renderstate 設定為 TRUEFALSE,啟用或停用剪刀測試。 此測試會在計算片段色彩之後執行,但在 Alpha 測試之前執行。 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;

默認剪刀矩形是完整的檢視區。

剪刀測試會在圖元著色器或固定函式管線完成圖元處理之後完成,如下圖所示。

剪刀測試相對於其他步驟執行時的圖表

像素管線