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 |