在 Win32 API 的 Direct3D 12 中,D3D12_COMPARISON_FUNC 枚举用于描述深度模板测试和深度模板写入等操作中所使用的比较函数。以下是该枚举的定义:
typedef enum D3D12_COMPARISON_FUNC {
  D3D12_COMPARISON_FUNC_NEVER         = 1,
  D3D12_COMPARISON_FUNC_LESS          = 2,
  D3D12_COMPARISON_FUNC_EQUAL         = 3,
  D3D12_COMPARISON_FUNC_LESS_EQUAL    = 4,
  D3D12_COMPARISON_FUNC_GREATER       = 5,
  D3D12_COMPARISON_FUNC_NOT_EQUAL     = 6,
  D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7,
  D3D12_COMPARISON_FUNC_ALWAYS        = 8
} D3D12_COMPARISON_FUNC;

这个枚举定义了用于比较深度和模板值的不同函数,每个函数对应不同的比较结果。以下是各个比较函数的含义:

  •  D3D12_COMPARISON_FUNC_NEVER:永不通过。


  •  D3D12_COMPARISON_FUNC_LESS:小于时通过。


  •  D3D12_COMPARISON_FUNC_EQUAL:等于时通过。


  •  D3D12_COMPARISON_FUNC_LESS_EQUAL:小于或等于时通过。


  •  D3D12_COMPARISON_FUNC_GREATER:大于时通过。


  •  D3D12_COMPARISON_FUNC_NOT_EQUAL:不等于时通过。


  •  D3D12_COMPARISON_FUNC_GREATER_EQUAL:大于或等于时通过。


  •  D3D12_COMPARISON_FUNC_ALWAYS:始终通过。


在深度模板测试中,这些函数用于决定是否通过测试,从而影响像素的深度值是否被写入深度缓冲区。在深度模板写入中,它们决定新的深度值是否会覆盖深度缓冲区中的旧值。


转载请注明出处:http://www.zyzy.cn/article/detail/26050/Win32 API/D3d12.h/D3D12_COMPARISON_FUNC