Ollós teszt (Direct3D 9)
Az ollós teszt az ollós téglalapon kívül eső képpontokat, a renderelési cél egy felhasználó által definiált négyszögletes alszakaszát levágja.
Az ollós téglalap segítségével jelezhető a renderelési célterület, ahol a játék világa rajzolódik. A téglalapon kívüli terület levágva, és a játék grafikus felületére fordítható. Az ollós vizsgálat nem tudja levágni a nem téglalap alakú területeket.
Az ollós téglalapok nem állíthatók be nagyobbak a renderelési célnál, de a nézetportnál nagyobbak is lehetnek.
Az ollós téglalapot az eszköz renderelési állapota kezeli. Az ollós teszt engedélyezve vagy letiltva, ha a renderstate-t true vagy FALSEértékre állítja. Ezt a tesztet a töredékszín kiszámítása után, de az alfatesztelés előtt hajtjuk végre. IDirect3DDevice9::SetRenderTarget visszaállítja az olló téglalapot a teljes renderelési célra, a nézetport alaphelyzetbe állításához hasonlóan. IDirect3DDevice9::SetScissorRect állapotblokkok rögzítik, és IDirect3DDevice9::CreateStateBlock az összes állapotbeállítással (D3DSBT_ALL érték D3DSTATEBLOCKTYPE). Az ollós teszt az IDirect3DDevice9::Clearműveletteleszközre is hatással van.
// 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;
Az alapértelmezett ollós téglalap a teljes nézetport.
Az olló tesztelése azután történik, hogy a képpontfeldolgozást egy képpontárnyékoló vagy a rögzített függvényfolyamat befejezte, ahogyan az alábbi ábrán látható.
Kapcsolódó témakörök