D3D12_DEPTH_STENCIL_DESC1 结构 (d3d12.h)

描述深度模具状态。

语法

typedef struct D3D12_DEPTH_STENCIL_DESC1 {
  BOOL                       DepthEnable;
  D3D12_DEPTH_WRITE_MASK     DepthWriteMask;
  D3D12_COMPARISON_FUNC      DepthFunc;
  BOOL                       StencilEnable;
  UINT8                      StencilReadMask;
  UINT8                      StencilWriteMask;
  D3D12_DEPTH_STENCILOP_DESC FrontFace;
  D3D12_DEPTH_STENCILOP_DESC BackFace;
  BOOL                       DepthBoundsTestEnable;
} D3D12_DEPTH_STENCIL_DESC1;

成员

DepthEnable

指定是否启用深度测试。 将此成员设置为 TRUE 以启用深度测试。

DepthWriteMask

一个D3D12_DEPTH_WRITE_MASK类型的值,用于标识深度数据可修改的深度模具缓冲区的一部分。

DepthFunc

一个D3D12_COMPARISON_FUNC类型的值,用于标识将深度数据与现有深度数据进行比较的函数。

StencilEnable

指定是否启用模具测试。 将此成员设置为 TRUE 以启用模具测试。

StencilReadMask

标识用于读取模具数据的深度模具缓冲区的一部分。

StencilWriteMask

标识用于写入模具数据的深度模具缓冲区的一部分。

FrontFace

一个D3D12_DEPTH_STENCILOP_DESC结构,描述如何对表面法线面向相机的像素使用深度测试的结果和模具测试。

BackFace

一个D3D12_DEPTH_STENCILOP_DESC结构,描述如何将深度测试结果和模具测试的结果用于表面法线正对着相机的像素。

DepthBoundsTestEnable

如果为 TRUE,则启用深度边界测试;否则为 FALSE。 默认值是 FALSE。

注解

D3D12_GRAPHICS_PIPELINE_STATE_DESC 对象包含一个深度模具状态结构,该结构控制输出合并阶段执行深度模具测试的方式。

下表显示了深度模具状态的默认值。

状态 默认值
DepthEnable TRUE
DepthWriteMask D3D12_DEPTH_WRITE_MASK_ALL
DepthFunc D3D12_COMPARISON_LESS
StencilEnable FALSE
StencilReadMask D3D12_DEFAULT_STENCIL_READ_MASK
StencilWriteMask D3D12_DEFAULT_STENCIL_WRITE_MASK
FrontFace.StencilFunc

BackFace.StencilFunc

D3D12_COMPARISON_ALWAYS
FrontFace.StencilDepthFailOp

BackFace.StencilDepthFailOp

D3D12_STENCIL_OP_KEEP
FrontFace.StencilPassOp

BackFace.StencilPassOp

D3D12_STENCIL_OP_KEEP
FrontFace.StencilFailOp

BackFace.StencilFailOp

D3D12_STENCIL_OP_KEEP
DepthBoundsTestEnable FALSE
 

支持加速的格式DXGI_FORMAT_D24_UNORM_S8_UINT和DXGI_FORMAT_D32_FLOAT_S8X24_UINT。

要求

要求
Header d3d12.h

另请参阅

核心结构