Prueba de tijeras (Direct3D 9)

La prueba de tijera selecciona píxeles que están fuera del rectángulo de tijera, una subsección rectangular definida por el usuario del destino de representación.

El rectángulo tijera se podría usar para indicar el área del destino de representación donde se dibuja el mundo del juego. El área fuera del rectángulo se selecciona y podría dedicarse a la GUI de un juego. La prueba de tijera no puede seleccionar áreas no rectangulares.

Los rectángulos de tijera no se pueden establecer más grandes que el destino de representación, pero se pueden establecer más grandes que la ventanilla.

El rectángulo de tijera se administra mediante un estado de representación del dispositivo. Una prueba de tijera está habilitada o deshabilitada estableciendo el renderstate en TRUE o FALSE. Esta prueba se realiza después de calcular el color del fragmento, pero antes de las pruebas alfa. IDirect3DDevice9::SetRenderTarget restablece el rectángulo scissor al destino de representación completo, análogo al restablecimiento de la ventanilla. IDirect3DDevice9::SetScisorRect se registra mediante stateblocks y IDirect3DDevice9::CreateStateBlock con la configuración de todo el estado (D3DSBT_ALL valor en D3DSTATEBLOCKTYPE). La prueba de tijera también afecta a la operación IDirect3DDevice9::Clear del dispositivo.

// 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;

El rectángulo de tijera predeterminado es la ventanilla completa.

Las pruebas de tijeras se realizan justo después de que un sombreador de píxeles o la canalización de función fija se completen justo después de que se complete el procesamiento de píxeles, como se muestra en el diagrama siguiente.

diagrama de cuándo se realizan pruebas de tijeras en relación con otros pasos

Canalización de píxeles