tonynogo

Demo 72 - Textures depending light

Jul 6th, 2017
3,021
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Shader "Custom/TextureDependingLight"
  2. {
  3.     Properties
  4.     {
  5.         _MainTex ("Texture in Light", 2D) = "white" {}
  6.         _SecondaryTex ("Texture in shadow", 2D) = "white" {}
  7.     }
  8.     SubShader
  9.     {
  10.         Tags { "LightMode" = "ForwardBase" }
  11.         Pass {
  12.  
  13.             CGPROGRAM
  14.             #pragma vertex vert
  15.             #pragma fragment frag
  16.             #include "UnityCG.cginc"
  17.  
  18.             struct v2f {
  19.                 float4 pos : SV_POSITION;
  20.                 float2 uv : TEXCOORD0;
  21.                 float light : TEXCOORD1;
  22.             };
  23.  
  24.             sampler2D _MainTex;
  25.             sampler2D _SecondaryTex;
  26.  
  27.             v2f vert(appdata_base v) {
  28.                 v2f o;
  29.                 o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
  30.                 o.uv = v.texcoord;
  31.                 float3 worldNormal = normalize(mul(v.normal, (float3x3) unity_WorldToObject));
  32.                 float3 lightDir = normalize(_WorldSpaceLightPos0.xyz);
  33.                 o.light = max(0, dot(worldNormal, lightDir));
  34.                 return o;
  35.             }
  36.  
  37.             fixed4 frag(v2f i) : SV_Target {
  38.                 fixed4 col1 = tex2D(_MainTex, i.uv);
  39.                 fixed4 col2 = tex2D(_SecondaryTex, i.uv);
  40.                 return lerp(col2, col1, i.light);
  41.             }
  42.  
  43.             ENDCG
  44.         }
  45.     }
  46. }
RAW Paste Data