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

标识可通过深度数据修改的深度模具缓冲区的一部分, (查看 D3D11_DEPTH_WRITE_MASK) 。

DepthFunc

类型: D3D11_COMPARISON_FUNC

一个函数,用于将深度数据与现有深度数据进行比较。 函数选项在 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

另请参阅

核心结构