가위 테스트(Direct3D 9)

가위 테스트는 렌더링 대상의 사용자 정의 사각형 하위 섹션인 가위 사각형 외부에 있는 픽셀을 컬링합니다.

가위 사각형을 사용하여 게임 월드가 그려지는 렌더링 대상의 영역을 나타낼 수 있습니다. 사각형 외부 영역은 컬링되며 게임의 GUI에 전념할 수 있습니다. 가위 테스트는 직사각형이 아닌 영역을 컬링할 수 없습니다.

가위 사각형은 렌더링 대상보다 크게 설정할 수 없지만 뷰포트보다 크게 설정할 수 있습니다.

가위 사각형은 디바이스 렌더링 상태로 관리됩니다. renderstate를 TRUE 또는 FALSE로 설정하여 가위 테스트를 사용하거나 사용하지 않도록 설정합니다. 이 테스트는 조각 색이 계산된 후 알파 테스트 전에 수행됩니다. IDirect3DDevice9::SetRenderTarget 은 가위 사각형을 뷰포트 재설정과 유사하게 전체 렌더링 대상으로 다시 설정합니다. IDirect3DDevice9::SetScissorRect는 stateblocks에 의해 기록되고, 모든 상태 설정(D3DSTATEBLOCKTYPE의 D3DSBT_ALL 값)이 있는 IDirect3DDevice9::CreateStateBlock이 기록됩니다. 가위 테스트는 디바이스 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;

기본 가위 사각형은 전체 뷰포트입니다.

가위 테스트는 다음 다이어그램과 같이 픽셀 셰이더 또는 고정 함수 파이프라인에서 픽셀 처리를 완료한 직후에 수행됩니다.

다른 단계를 기준으로 가위 테스트가 수행되는 경우의 다이어그램

픽셀 파이프라인