以下是 D3D12_DEPTH_STENCIL_DESC1 结构体的定义:
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;
BOOL ProgrammableSampleMaskEnable;
UINT ConservativeRaster;
} D3D12_DEPTH_STENCIL_DESC1;
其中:
- DepthEnable 表示是否启用深度测试。
- DepthWriteMask 表示深度写入掩码,决定深度缓冲区是否可写。
- DepthFunc 表示深度测试的比较函数。
- StencilEnable 表示是否启用模板测试。
- StencilReadMask 和 StencilWriteMask 分别表示模板读取掩码和模板写入掩码。
- FrontFace 和 BackFace 是 D3D12_DEPTH_STENCILOP_DESC 结构,用于定义前后两个面的模板操作。
- DepthBoundsTestEnable 表示是否启用深度范围测试。
- ProgrammableSampleMaskEnable 表示是否启用可编程的样本掩码。
- ConservativeRaster 表示保守光栅化模式的设置,可以是 D3D12_CONSERVATIVE_RASTERIZATION_MODE 枚举中的一个值。
这个结构体可以在创建深度模板状态时使用,例如通过 ID3D12Device2::CreateDepthStencilState1 函数。创建深度模板状态对象后,它可以在管道状态中使用,以控制深度和模板测试的行为。
转载请注明出处:http://www.zyzy.cn/article/detail/25914/Win32 API/D3d12.h/D3D12_DEPTH_STENCIL_DESC1