Test nożycowy (Direct3D 9)
Test nożycy culls pikseli, które znajdują się poza prostokątem nożyc, zdefiniowanym przez użytkownika prostokątnym podsiecią elementu docelowego renderowania.
Prostokąt nożycy może służyć do wskazania obszaru obiektu docelowego renderowania, w którym jest rysowany świat gry. Obszar poza prostokątem jest uśmiercony i może być poświęcony graficznemu interfejsowi użytkownika gry. Test nożycy nie może cull nie prostokątnych obszarów.
Nie można ustawić prostokątów nożyc większych niż obiekt docelowy renderowania, ale można je ustawić jako większe niż w obszarze widoku.
Prostokąt nożycy jest zarządzany przez stan renderowania urządzenia. Test nożycowy jest włączony lub wyłączony przez ustawienie stanu renderowania na wartość true lub FALSE. Ten test jest wykonywany po obliczeniu koloru fragmentu, ale przed rozpoczęciem testowania alfa. IDirect3DDevice9::SetRenderTarget resetuje prostokąt nożycy do pełnego obiektu docelowego renderowania, analogicznie do resetowania widoku. IDirect3DDevice9::SetScisorRect jest rejestrowany przez bloki stanu, a IDirect3DDevice9::CreateStateBlock ze wszystkim ustawieniem stanu (D3DSBT_ALL wartość w D3DSTATEBLOCKTYPE). Test nożycowy ma również wpływ na urządzenie IDirect3DDevice9::Clear operacji.
// 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;
Domyślny prostokąt nożycy to pełne okienko widoku.
Testowanie nożyc jest wykonywane tuż po zakończeniu przetwarzania pikseli przez cieniowanie pikseli lub potok funkcji stałej, jak pokazano na poniższym diagramie.
Tematy pokrewne