深度バイアス (深度オフセットとも呼ばれます) は、ジオメトリを描画する深度を決定する 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.
}
}
}