Compartir a través de


Prueba de tijeras (Direct3D 9)

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

El rectángulo tijera podría usarse 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 tijeras 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 scissor se administra mediante un estado de representación del dispositivo. Una prueba de tijera está habilitada o deshabilitada estableciendo el valor de 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::SetScissorRect 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 al dispositivo operación 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;

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, como se muestra en el diagrama siguiente.

diagrama de cuándo se realiza la prueba de tijeras en relación con otros pasos

de canalización de píxeles