GPU の深度バイアスを設定します。
深度バイアス (深度オフセットとも呼ばれます) は、ジオメトリを描画する深度を決定する GPU の設定です。深度バイアスを調整すると、GPU は同じ深さにある他のジオメトリの上にジオメトリを描画するようになります。これにより、Z ファイティングやシャドウアクネなどの好ましくない視覚効果を避けることができます。
特定のジオメトリの深度バイアスを設定するには、このコマンドまたはRenderStateBlock を使用します。すべてのジオメトリに影響を与えるグローバルの深度バイアスを設定するには、CommandBuffer.SetGlobalDepthBias を使用します。GPU は、グローバルの深度バイアスに加えて、特定のジオメトリの深度バイアスを適用します。
シャドウアクネを軽減するには、ライトバイアス を設定すると同様の視覚効果を得ることができます。ただし、この設定は違う方法で動作し、GPU の状態を変更するものではありません。詳細については、影のトラブルシューティング を参照してください。
機能名 | ビルトインレンダーパイプライン | ユニバーサルレンダーパイプライン (URP) | HD レンダーパイプライン (HDRP) | カスタム SRP |
---|---|---|---|---|
Offset | 可 | 可 | 可 | 可 |
このコマンドは、レンダー状態の変更を行います。Pass
ブロックで使用すると、そのパスのレンダー状態を設定することができます。また、SubShader
ブロックで使用すると、そのサブシェーダー内のすべてのパスのレンダー状態を設定することができます。
シグネチャ | 構文例 | 機能 |
---|---|---|
Offset <factor>, <units> |
Offset 1, 1 |
指定された値に基づいて、ジオメトリをカメラの近く、または遠くに描画します。 |
パラメーター | Value | 機能 |
---|---|---|
factor | Float (範囲は –1 から 1) | 深度勾配とも呼ばれる最大 Z の勾配をスケールして、各ポリゴンの可変深度オフセットを生成します。 ニアクリップ面とファークリップ面に平行でないポリゴンには Z スロープがあります。そのようなポリゴンの視覚的なアーティファクトを避けるために、この値を調整します。 |
units | Float (範囲は –1 から 1) | 一定の深度オフセットを生成するために、最小解決可能深度バッファ値をスケールします。解決可能な最小深度バッファ値 (1 unit) は、デバイスによって異なります。 負の値は、GPU がポリゴンをカメラに近づけて描画することを意味します。正の値は、GPU がポリゴンをカメラから遠くに描画することを意味します。 |
このコードサンプルでは、Pass ブロックでこのコマンドを使用するための構文を示しています。
Shader "Examples/CommandExample"
{
SubShader
{
// SubShader を定義する残りのコードをここに記述します
Pass
{
// GPU がこのジオメトリをカメラに近くに描画するように、このジオメトリの深度オフセットを設定します
// 通常、 Z ファイティングを避けるためにこれを行います
Offset -1, -1
// パスを定義する残りのコードをここに記述します
}
}
}
このサンプルコードでは、SubShader ブロックでこのコマンドを使用するための構文を示しています。
Shader "Examples/CommandExample"
{
SubShader
{
// GPU がこのジオメトリをカメラに近くに描画するように、このジオメトリの深度オフセットを設定します
// 通常、 Z ファイティングを避けるためにこれを行います
Offset -1, -1
// SubShader を定義する残りのコードをここに記述します
Pass
{
// パスを定義する残りのコードをここに記述します
}
}
}
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.