Add Fade Rendering mode into my custom shader

Hello i have custom shader that i have downloaded and used for about half a year, i modified it a little bit just to add emission and other stuff but i cant seem to figure out a way to add Fade rendering mode just like in standart Shader. I need it for my special half transparent object/material and i have to use this shader.
My shader :

Shader "Curved/CurvedSurfaceFade" {

Properties {
      _Color ("Color", Color) = (1,1,1,1)
      _MainTex ("Albedo (RGB)", 2D) = "white" {}
      _Emission("Emission", float) = 0
      [HDR] _EmissionColor("Color", Color) = (0,0,0)
      _Glossiness ("Smoothness", Range(0,1)) = 0.5
}

SubShader {

    Tags { "RenderType"="Opaque" }
    LOD 200

    CGPROGRAM

    // Physically based Standard lighting model, and enable shadows on all light types

    #pragma surface surf Standard fullforwardshadows vertex:vert addshadow
    //#pragma surface surf Lambert vertex:vert addshadow
  
    // Use shader model 3.0 target, to get nicer looking lighting
    #pragma target 3.0

    #include "UnityCG.cginc"

    sampler2D _MainTex;
  
    struct Input {
    float2 uv_MainTex;
    };
  
    fixed4 _Color;
    fixed4 _EmissionColor;
    half _Glossiness;


    // Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader.
    // See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing.
    // #pragma instancing_options assumeuniformscaling

    UNITY_INSTANCING_BUFFER_START(Props)
    // put more per-instance properties here
    UNITY_INSTANCING_BUFFER_END(Props)

    #include "CurvedSurfaceCore.cginc"

    void surf (Input IN, inout SurfaceOutputStandard o)
    //void surf (Input IN, inout SurfaceOutput o)
    {
        // Albedo comes from a texture tinted by color
        fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
        o.Albedo = c.rgb;
        o.Alpha = c.a;
        o.Emission = c.rgb * tex2D(_MainTex, IN.uv_MainTex).a * _EmissionColor;
        o.Smoothness = _Glossiness;
    }

    ENDCG

}

FallBack "Diffuse"

}

Example of the shader im using for better understanding if needed.

Fixed with this shader script :

Shader "Curved/CurvedSurfaceAlpha" {
    Properties {
        _Color ("Color", Color) = (1,1,1,1)
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
        _Emission("Emission", float) = 0
        [HDR] _EmissionColor("Color", Color) = (0,0,0)
        _Glossiness ("Smoothness", Range(0,1)) = 0.5
        _Metallic ("Metallic", Range(0,1)) = 0.0
    }
    SubShader {
        Tags {"Queue"="Transparent" "RenderType"="Transparent"}
        Blend SrcAlpha OneMinusSrcAlpha
        ZWrite off

        LOD 200

        CGPROGRAM
        // Physically based Standard lighting model, and enable shadows on all light types
        //#pragma surface surf Standard fullforwardshadows vertex:vert alpha:blend noshadow
        #pragma surface surf Standard fullforwardshadows vertex:vert alpha:blend

        // Use shader model 3.0 target, to get nicer looking lighting
        #pragma target 3.0

        sampler2D _MainTex;

        struct Input {
            float2 uv_MainTex;
        };

        half _Glossiness;
        half _Metallic;
        fixed4 _Color;
        fixed4 _EmissionColor;

        // Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader.
        // See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing.
        // #pragma instancing_options assumeuniformscaling
        UNITY_INSTANCING_BUFFER_START(Props)
            // put more per-instance properties here
        UNITY_INSTANCING_BUFFER_END(Props)

        #include "CurvedSurfaceCore.cginc"

        void surf (Input IN, inout SurfaceOutputStandard o) {
            // Albedo comes from a texture tinted by color
            fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
            o.Emission = c.rgb * tex2D(_MainTex, IN.uv_MainTex).a * _EmissionColor;
            o.Albedo = c.rgb;
            // Metallic and smoothness come from slider variables
            //o.Metallic = _Metallic;
            //o.Smoothness = _Glossiness;
            o.Alpha = c.a;
        }
        ENDCG
    }
    FallBack "Diffuse"
}
1 Like