GXDEPTH STENCIL DESC

Материал из SkyXEngine wiki
Перейти к: навигация, поиск

Описывает состояния буферов глубины и трафарета для вызова IGXContext::createDepthStencilState для создания IGXDepthStencilState

Синтаксис

typedef struct _GXDEPTH_STENCIL_DESC
{
	BOOL bDepthEnable = TRUE;
	BOOL bEnableDepthWrite = TRUE;
	GXCOMPARISON_FUNC depthFunc = GXCOMPARISON_LESS_EQUAL;
	BOOL bStencilEnable = FALSE;
	byte u8StencilReadMask = 0xFF;
	byte u8StencilWriteMask = 0xFF;
	GXSTENCIL_OP stencilFailOp = GXSTENCIL_OP_KEEP;
	GXSTENCIL_OP stencilDepthFailOp = GXSTENCIL_OP_KEEP;
	GXSTENCIL_OP stencilPassOp = GXSTENCIL_OP_KEEP;
	GXCOMPARISON_FUNC stencilFunc = GXCOMPARISON_ALWAYS;
} GXDEPTH_STENCIL_DESC;

Поля

bDepthEnable
Тип: BOOL
Включает тест глубины
bEnableDepthWrite
Тип: BOOL
Включает запись глубины
depthFunc
Тип: GXCOMPARISON_FUNC
Функция сравнения значений глубины из шейдера и из рендертаргета
bStencilEnable
Тип: BOOL
Включает тест трафарета
u8StencilReadMask
Тип: byte
Маска чтения из буфера трафарета
u8StencilWriteMask
Тип: byte
Маска записи в буфер трафарета
stencilFailOp
Тип: GXSTENCIL_OP
Действие при провале теста трафарета
stencilDepthFailOp
Тип: GXSTENCIL_OP
Действие при прохождении теста трафарета, но провале теста глубины
stencilPassOp
Тип: GXSTENCIL_OP
Действие при прохождении обоих тестов
stencilFunc
Тип: GXCOMPARISON_FUNC
Функция сравнения значений трафарета из шейдера и из рендертаргета


Примечания

Аналоги в dx9

IDirect3Device9::SetRenderState() со следующими стейтами:

  • D3DRS_ZENABLE
  • D3DRS_ZWRITEENABLE
  • D3DRS_ZFUNC
  • D3DRS_STENCILENABLE
  • D3DRS_STENCILMASK
  • D3DRS_STENCILWRITEMASK
  • D3DRS_STENCILFAIL
  • D3DRS_STENCILZFAIL
  • D3DRS_STENCILPASS
  • D3DRS_STENCILFUNC