深度偏差,也称为深度偏移,是 GPU 上的一个设置,用于确定绘制几何体的深度。调整深度偏差以强制 GPU 在与其他几何体深度相同的几何体之上绘制几何体。这可以帮助您避免不必要的视觉效果,例如 Z 冲突和阴影痤疮。
要为特定几何体设置深度偏差,请使用此命令或 RenderStateBlock。要设置影响所有几何体的全局深度偏差,请使用 CommandBuffer.SetGlobalDepthBias。GPU 会在全局深度偏差之外为特定几何体应用深度偏差。
要减少阴影痤疮,您可以使用灯光偏差设置获得类似的视觉效果;但是,这些设置的工作方式不同,并且它们不会更改 GPU 上的状态。有关更多信息,请参阅 阴影故障排除。
此示例代码演示了在 Pass 块中使用此命令的语法。
Shader "Examples/CommandExample"
{
SubShader
{
// The rest of the code that defines the SubShader goes here.
Pass
{
// Sets the depth offset for this geometry so that the GPU draws this geometry closer to the camera
// You would typically do this to avoid z-fighting
Offset -1, -1
// The rest of the code that defines the Pass goes here.
}
}
}