Shader "Rokid/RBG" {
	Properties {
	    _MainColor ("MainColor", Color) = (1.0,1.0,1.0,1.0)
		_Color ("Color", Color) = (1.0,1.0,1.0,1.0)
	    _MainTex("_MainTex", 2D) = "white" {}
        _RimPow ("Rim Power", Range(0.0,5.0)) = 2.0
		 _AddRimPow ("AddRim Power", Range(0.0,5.0)) = 2.0
        _Glossiness ("Brightness",Range(0.0,3.0)) = 3.0
    }
    SubShader {
      Tags { "RenderType" = "Transparent" "Queue"="Transparent" "IgnoreProjector"="True"}

	 Pass {
		ZWrite On
		ColorMask 0
	   }

      CGPROGRAM
      #pragma surface surf Lambert alpha noambient nolightmap nodirlightmap  novertexlights
      struct Input {
       
		  float2 uv_MainTex;
          float2 uv_BumpMap;
          float2 viewDir;
      };
    
	  sampler2D _MainTex;
      sampler2D _BumpMap;
	  float4 _MainColor;
      float4 _Color;
      float _RimPow;
	  float _AddRimPow;
      float _Glossiness;
	  

      void surf (Input IN, inout SurfaceOutput o) {
      	
		  half4 c = tex2D(_MainTex, IN.uv_MainTex)*_MainColor*_AddRimPow;
     		
		  o.Albedo = c.rgb;
          o.Normal = UnpackNormal (tex2D (_BumpMap, IN.uv_BumpMap));
		  o.Emission = saturate(_Color.rgb * pow((1.0 - saturate(dot (normalize(IN.viewDir), o.Normal))), _RimPow) * _Glossiness + c);
          o.Alpha = c.a * _Glossiness * o.Emission;
      }
      ENDCG
    }
    Fallback "Diffuse"
  }
