Leggere in inglese

Condividi tramite


Test scissor (Direct3D 9)

Il test scissor verifica i pixel esterni al rettangolo scissor, una sottosezioni rettangolare definita dall'utente della destinazione di rendering.

Il rettangolo scissor può essere usato per indicare l'area della destinazione di rendering in cui viene disegnato il mondo del gioco. L'area all'esterno del rettangolo è stata chiusa e potrebbe essere dedicata all'interfaccia utente grafica di un gioco. Il test di scissor non può escludere aree non rettangolari.

I rettangoli scissor non possono essere impostati più grandi della destinazione di rendering, ma possono essere impostati più grandi del riquadro di visualizzazione.

Il rettangolo scissor è gestito da uno stato di rendering del dispositivo. Un test scissor è abilitato o disabilitato impostando lo stato di rendering su TRUE o FALSE. Questo test viene eseguito dopo il calcolo del colore del frammento, ma prima del test alfa. IDirect3DDevice9::SetRenderTarget reimposta il rettangolo scissor sulla destinazione di rendering completa, analogamente alla reimpostazione del riquadro di visualizzazione. IDirect3DDevice9::SetScissorRect viene registrato da stateblocks e IDirect3DDevice9::CreateStateBlock con l'impostazione di tutti gli stati (D3DSBT_ALL valore in D3DSTATEBLOCKTYPE). Il test scissor influisce anche sul dispositivo 'operazione 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;

Il rettangolo di scissor predefinito è il riquadro di visualizzazione completo.

Il test scissor viene eseguito subito dopo il completamento dell'elaborazione dei pixel da un pixel shader o dalla pipeline di funzioni fisse, come illustrato nel diagramma seguente.

diagramma di quando viene eseguito il test scissor rispetto ad altri passaggi

pipeline pixel