Makas Testi (Direct3D 9)
Makas testi, işleme hedefinin kullanıcı tanımlı dikdörtgen alt bölümü olan makas dikdörtgeninin dışındaki pikselleri culls.
Makas dikdörtgeni, oyun dünyasının çizildiği işleme hedefinin alanını belirtmek için kullanılabilir. Dikdörtgenin dışındaki alan itlaf edilir ve bir oyunun GUI'sine ayrılmış olabilir. Makas testi dikdörtgen olmayan alanları silemez.
Makas dikdörtgenler, işleme hedefinden daha büyük ayarlanamaz, ancak görünüm penceresine göre daha büyük ayarlanabilir.
Makas dikdörtgen bir cihaz işleme durumu tarafından yönetilir. Renderstate değeri TRUE veya FALSEolarak ayarlanarak makas testi etkinleştirilir veya devre dışı bırakılır. Bu test, parça rengi hesaplandıktan sonra ancak alfa testi öncesinde gerçekleştirilir. IDirect3DDevice9::SetRenderTarget, görünüm penceresi sıfırlamasına benzer şekilde makas dikdörtgeni tam işleme hedefine sıfırlar. IDirect3DDevice9::SetScissorRect stateblocks tarafından kaydedilir ve IDirect3DDevice9::CreateStateBlocktüm durum ayarıyla (D3DSTATEBLOCKTYPED3DSBT_ALL değeri). Makas testi, IDirect3DDevice9::Clearişleminicihazı da etkiler.
// 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;
Varsayılan makas dikdörtgeni tam görünüm penceresidir.
Makas testi, aşağıdaki diyagramda gösterildiği gibi piksel işleme bir piksel gölgelendiricisi veya sabit işlev işlem hattı tarafından tamamlandıktan hemen sonra yapılır.
Makas testinin diğer adımlara göre ne zaman gerçekleştirildiğini
İlgili konular