Version: 2021.2
言語: 日本語
ShaderLab コマンド: Conservative
ShaderLab コマンド: Offset

ShaderLab コマンド: Cull

カメラに対するポリゴンの向きに基づいて、GPUがどのポリゴンをカリングするかを設定します。

カリングとは、描画しない対象を決定するプロセスです。カリングを行うことで、最終的な画像に表示されないものを描画するために GPU の時間を無駄にすることなく、レンダリング効率が向上します。

デフォルトでは、GPU は裏側のカリングを実行します。これは、ビューアーに背を向けているポリゴンを描画しないことを意味します。一般的に、レンダリングの作業負荷は軽減できるほど良いので、この設定を変更するのは必要なときだけにしてください。

レンダーパイプラインの互換性

機能名 ビルトインレンダーパイプライン ユニバーサルレンダーパイプライン (URP) HD レンダーパイプライン (HDRP) カスタム SRP
Cull はい はい はい はい

使用法

このコマンドは、レンダー状態の変更を行います。Pass ブロックで使用すると、そのパスのレンダー状態を設定することができます。また、SubShader ブロックで使用すると、そのサブシェーダー内のすべてのパスのレンダー状態を設定することができます。

シグネチャ 構文例 機能
Cull <state> Cull Back カメラに対するポリゴンの向きに基づいて、GPU がどのポリゴンの描画を省くかを設定します。

有効なパラメーター値

パラメーター Value 機能
状態 Back カメラに裏を向けているポリゴンを省きます。これを裏面カリングといいます。

これがデフォルトの値です。
Front カメラの方を向いているポリゴンの描画を省きます。

ジオメトリを裏返しにする場合に使用します。
Off ポリゴンの向きに基づいてカリングをおこないません。

透明なオブジェクトや両面壁 (裏表がない) などの特殊な効果に使用します。

Shader "Examples/CommandExample"
{
    SubShader
    {
         // SubShader を定義する残りのコードはここに記述します

        Pass
        {    
              // このパスにはカリングは行いません
              // 通常、これは、透明なオブジェクトや両面壁などの特殊な効果に対して行います
              Cull Off
            
              // パスを定義する残りのコードはここに記述します
        }
    }
}

このサンプルコードでは、SubShader ブロックでこのコマンドを使用するための構文を示しています。

Shader "Examples/CommandExample"
{
    SubShader
    {
         // Disable culling for this SubShader.
         // 通常、これは、透明なオブジェクトや両面壁などの特殊な効果に対して行います
         Cull Off

         // SubShader を定義する残りのコードはここに記述します      

        Pass
        {    
              //パスを定義する残りのコードはここに記述します
        }
    }
}
ShaderLab コマンド: Conservative
ShaderLab コマンド: Offset