Тест ножницы (Direct3D 9)
Ножница тестовых килок пикселей, которые находятся за пределами прямоугольника ножницы, определяемого пользователем прямоугольника целевого объекта отрисовки.
Прямоугольник ножницы можно использовать для указания области целевого объекта отрисовки, где рисуется игровой мир. Область за пределами прямоугольника забрасываются и может быть посвящена графическому интерфейсу игры. Тест ножницы не может сворачивать не прямоугольные области.
Прямоугольники scissor нельзя задать больше целевого объекта отрисовки, но их можно задать больше, чем окно просмотра.
Прямоугольник ножницы управляется состоянием отрисовки устройства. Тест ножницы включен или отключен, установив для отрисовки значение TRUE или FALSE. Этот тест выполняется после вычисления цвета фрагмента, но перед альфа-тестированием. IDirect3Device9::SetRenderTarget сбрасывает прямоугольник ножницы до полного целевого объекта отрисовки, аналогично сбросу окна просмотра. IDirect3Device9::SetScissorRect записывается блоками состояния и IDirect3Device9::CreateStateBlock со всеми параметрами состояния (D3DSBT_ALL значением в D3DSTATEBLOCKTYPE). Тест ножницы также влияет на устройство операции 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;
Прямоугольник по умолчанию является полным окном просмотра.
Тестирование scissor выполняется сразу после завершения обработки пикселей шейдером пикселей или конвейером фиксированной функции, как показано на следующей схеме.
Связанные разделы