Completly invisible shader, but only shows lights reflection on it

Hi everyone,

Is it possible to write a shader that is completly invisible, but only shows lights reflection on it as the example below ?

Before applying shader
1899453--122430--light1.png

The plane is fully transparent, but it reflects the white light part, as a white diffuse
1899453--122431--light2.png

Real time result
1899453--122432--light3.png

Anyone know if something like that already exists ?

Thanks!

I found this shader here to show lighting only:

    Shader "Lighting Only" {
        Properties {
            _Color ("Main Color", Color) = (1,1,1,1)
            _MainTex ("Base (RGB)", 2D) = "white" {}
        }
     
        SubShader {
            Blend SrcAlpha One
            ZWrite Off
            Tags {Queue = Transparent}
            ColorMask RGB
            // Vertex lights
            Pass {
                Tags {"LightMode" = "Vertex"}
                Lighting On
                Material {
                    Diffuse [_Color]
                }
                SetTexture [_MainTex] {
                    constantColor [_Color]
                    Combine texture * primary DOUBLE, texture * constant
                }
            }
        }
     
        Fallback "VertexLit", 2
     
    }

Here is the result with “Lighting Only” shader:
1899508--122443--Light Only.png

I still have 2 problems with it, the light result is not clean (low definition?), and this shader does not accept shadows (unlike “Diffuse” shader) :
1899508--122442--diffuse.png

Thanks in advance

After multiples tests I finally found this, witch seems to be perfect:

Good result, but it still not recieves the projected shadow from the cube, any ideas ?

     Shader "FX/Matte Shadow3" {
    Properties {
    _Color ("Main Color", Color) = (1,1,1,1)
    _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
    _Cutoff ("Alpha cutoff", Range(0,1)) = 0.01
    _ShadowStrength ("Shadow strength", Range(0,5)) = 1
    }
    SubShader {
    Tags {"Queue"="AlphaTest" "IgnoreProjector"="True" "RenderType"="TransparentCutout"}
    LOD 200
    Blend Zero SrcColor
    CGPROGRAM
    #pragma surface surf ShadowOnly alphatest:_Cutoff
    fixed4 _Color;
    float _ShadowStrength;
    
    struct Input {
    float2 uv_MainTex;
    };
    
    inline fixed4 LightingShadowOnly (SurfaceOutput s, fixed3 lightDir, fixed atten){
    fixed4 c;
    c.rgb = s.Albedo*atten;
//    c.rgb = lerp(_ShadowStrength *.75, 1, atten).rrr;
    c.a = s.Alpha;
    return c;
    }
    
    void surf (Input IN, inout SurfaceOutput o) {
     //fixed4 c = _LightColor0 + _Color;
     fixed4 c = _LightColor0 + 0.3*_Color;
     //fixed4 c = _Color;
    o.Albedo = c.rgb * _ShadowStrength;
    o.Alpha = 0;
    }
    ENDCG
    }
    Fallback "Transparent/Cutout/VertexLit"
    }

1899508--122442--diffuse.png

For anyone still struggeling with this and want a shader that is 2 sided transparent but still show the light glow, I changed the above shader a bit to make it work:

 Shader "FX/Matte Shadow3" {
    Properties {
    _Color ("Main Color", Color) = (1,1,1,1)
    _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
    _Cutoff ("Alpha cutoff", Range(0,1)) = 0.01
    _ShadowStrength ("Shadow strength", Range(0,5)) = 1
    }
    SubShader {
        Tags{ "RenderType" = "Transparent" "Queue" = "Transparent" }
        LOD 100
        Blend srcAlpha oneMinusSrcAlpha
        ZWrite Off

        CGPROGRAM
        #pragma surface surf ShadowOnly alphatest:_Cutoff
       
        fixed4 _Color;
        float _ShadowStrength;
  
        struct Input {
            float2 uv_MainTex;
        };
  
        inline fixed4 LightingShadowOnly (SurfaceOutput s, fixed3 lightDir, fixed atten){
            fixed4 c;
            c.rgb = s.Albedo*atten;
        //    c.rgb = lerp(_ShadowStrength *.75, 1, atten).rrr;
            c.a = s.Alpha;
            return c;
        }
  
        void surf (Input IN, inout SurfaceOutput o) {
            //fixed4 c = _LightColor0 + _Color;
            fixed4 c = _LightColor0 + 0.1*_Color;
            //fixed4 c = _Color;
            o.Albedo = c.rgb * _ShadowStrength;
            o.Alpha = 0;
        }

    ENDCG
    }
    Fallback "Transparent/Cutout/VertexLit"
}

It can be better but I’m just starting to learn :stuck_out_tongue:

Make sure you set alpha cutoff to 0 (zero) for it to work properly.

Anyone found a solution that supports shadows?