D3D11_DEPTH_STENCIL_DESC 结构 (d3d11.h)
描述深度模具状态。
语法
typedef struct D3D11_DEPTH_STENCIL_DESC {
BOOL DepthEnable;
D3D11_DEPTH_WRITE_MASK DepthWriteMask;
D3D11_COMPARISON_FUNC DepthFunc;
BOOL StencilEnable;
UINT8 StencilReadMask;
UINT8 StencilWriteMask;
D3D11_DEPTH_STENCILOP_DESC FrontFace;
D3D11_DEPTH_STENCILOP_DESC BackFace;
} D3D11_DEPTH_STENCIL_DESC;
成员
DepthEnable
类型: BOOL
启用深度测试。
DepthWriteMask
标识可通过深度数据修改的深度模具缓冲区的一部分, (查看 D3D11_DEPTH_WRITE_MASK) 。
DepthFunc
一个函数,用于将深度数据与现有深度数据进行比较。 函数选项在 D3D11_COMPARISON_FUNC 中列出。
StencilEnable
类型: BOOL
启用模具测试。
StencilReadMask
类型: UINT8
标识用于读取模具数据的深度模具缓冲区的一部分。
StencilWriteMask
类型: UINT8
标识用于写入模具数据的深度模具缓冲区的一部分。
FrontFace
类型: D3D11_DEPTH_STENCILOP_DESC
确定如何将深度测试结果和模具测试的结果用于表面法线朝相机的像素, (看到 D3D11_DEPTH_STENCILOP_DESC) 。
BackFace
类型: D3D11_DEPTH_STENCILOP_DESC
确定如何将深度测试结果和模具测试的结果用于表面法线正对着相机的像素, (看到 D3D11_DEPTH_STENCILOP_DESC) 。
注解
将指向 D3D11_DEPTH_STENCIL_DESC 的指针传递到 ID3D11Device::CreateDepthStencilState 方法,以创建深度模具状态对象。
深度模具状态控制输出合并阶段如何执行深度模具测试。
下表显示了深度模具状态的默认值。
状态 | 默认值 |
---|---|
DepthEnable | TRUE |
DepthWriteMask | D3D11_DEPTH_WRITE_MASK_ALL |
DepthFunc | D3D11_COMPARISON_LESS |
StencilEnable | FALSE |
StencilReadMask | D3D11_DEFAULT_STENCIL_READ_MASK |
StencilWriteMask | D3D11_DEFAULT_STENCIL_WRITE_MASK |
FrontFace.StencilFunc 和 BackFace.StencilFunc |
D3D11_COMPARISON_ALWAYS |
FrontFace.StencilDepthFailOp 和 BackFace.StencilDepthFailOp |
D3D11_STENCIL_OP_KEEP |
FrontFace.StencilPassOp 和 BackFace.StencilPassOp |
D3D11_STENCIL_OP_KEEP |
FrontFace.StencilFailOp 和 BackFace.StencilFailOp |
D3D11_STENCIL_OP_KEEP |
支持加速的格式DXGI_FORMAT_D24_UNORM_S8_UINT和DXGI_FORMAT_D32_FLOAT_S8X24_UINT。
要求
要求 | 值 |
---|---|
Header | d3d11.h |