Version: Unity 6.0 (6000.0)
言語 : 日本語
ビルトインレンダーパイプラインで最終色のモディファイアを使用するサーフェスシェーダーの例
ビルトインレンダーパイプラインのラップされた拡散サーフェスシェーダーの例

ビルトインレンダーパイプラインのデカールサーフェスシェーダーの例

デカールは一般的に、ランタイムにマテリアルにディテールを追加するために使用します (例えば、弾丸の衝撃など)。特にディファードレンダリングでは GBuffer を変更してからライティングを行うため、パフォーマンスの節約につながり便利です。

通常の場合は、デカールは不透明なオブジェクトの後にレンダリングされるべきであり、以下のシェーダーラボの “Tags” に示すように、影の投影 (Shadow Casting) をすべきではありません。

Shader "Example/Decal" {
  Properties {
    _MainTex ("Base (RGB)", 2D) = "white" {}
  }
  SubShader {
    Tags { "RenderType"="Opaque" "Queue"="Geometry+1" "ForceNoShadowCasting"="True" }
    LOD 200
    Offset -1, -1
    
    CGPROGRAM
    #pragma surface surf Lambert decal:blend
    
    sampler2D _MainTex;
    
    struct Input {
      float2 uv_MainTex;
    };
    
    void surf (Input IN, inout SurfaceOutput o) {
        half4 c = tex2D (_MainTex, IN.uv_MainTex);
        o.Albedo = c.rgb;
        o.Alpha = c.a;
      }
    ENDCG
    }
}
ビルトインレンダーパイプラインで最終色のモディファイアを使用するサーフェスシェーダーの例
ビルトインレンダーパイプラインのラップされた拡散サーフェスシェーダーの例