Direct3D 12 图形) (着色器指定的模具参考值
启用像素着色器来输出模具参考值,而不是使用特定于 API 的模具参考值,可以对模具操作进行非常精细的粒度控制。
模具引用值通常由 ID3D12GraphicsCommandList::OMSetStencilRef 方法指定。 此方法按绘制粒度设置模具引用值。 但是,像素着色器可以覆盖此值。
此 D3D12 (和 D3D11.3) 功能使开发人员能够读取和使用从像素着色器输出的模具参考值 (SV_StencilRef) ,从而实现按像素或按样本粒度。
着色器指定的值替换该调用的 API 指定的引用值,这意味着更改会影响模具测试,并且当模具操作D3D12_STENCIL_OP_REPLACE (D3D12_STENCIL_OP 的一个成员时,) 用于将引用值写入模具缓冲区。
此功能在 D3D12 和 D3D11.3 中都是可选的。 若要测试其支持,请使用 CheckFeatureSupport 检查D3D12_FEATURE_DATA_D3D12_OPTIONS的 PSSpecifiedStencilRefSupported 布尔字段。
下面是在像素着色器中使用 SV_StencilRef 的示例:
uint main2(float4 c : COORD) : SV_StencilRef
{
return uint(c.x);
}
相关主题
-
呈现
-
Shader Model 5.1(着色器模型 5.1)