カメラに対するポリゴンの向きに基づいて、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
        {    
              //パスを定義する残りのコードはここに記述します
        }
    }
}