Advertisement
Guest User

curvedAlphaLightningShader

a guest
Jul 20th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.00 KB | None | 0 0
  1. Shader "Curved/CurvedAlphaWithLightning" {
  2.   Properties {
  3.         _Color("Color", COLOR) = (1, 1, 1, 1)
  4.         _MainTex ("Base (RGB)", 2D) = "white" {}
  5.         _QOffset ("Offset", Vector) = (0,0,0,0)
  6.         _Dist ("Distance", Float) = 100.0      
  7.         _Alpha ("Alpha", Range(0.0,1.0)) = 1.0
  8.     }
  9.     SubShader {
  10.         Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "LightMode"="ForwardBase"}
  11.         LOD 100
  12.    
  13.         ZWrite On
  14.         Blend SrcAlpha OneMinusSrcAlpha
  15.  
  16.         Pass
  17.         {
  18.             Lighting On
  19.  
  20.             CGPROGRAM
  21.             // Upgrade NOTE: excluded shader from DX11; has structs without semantics (struct v2f members factor)
  22.             //#pragma exclude_renderers d3d11
  23.             #pragma vertex vert
  24.             #pragma fragment frag
  25.             #include "UnityCG.cginc"
  26.             #include "UnityLightingCommon.cginc"
  27.  
  28.             half4 _Color;
  29.             sampler2D _MainTex;
  30.             float4 _QOffset;
  31.             float _Dist;           
  32.             float _Alpha;
  33.             uniform float4 _MainTex_ST;
  34.            
  35.             struct v2f
  36.             {
  37.                 float4 pos : SV_POSITION;
  38.                 float2 uv : TEXCOORD0;
  39.                 float3 diffColor: COLOR0;
  40.             };
  41.  
  42.             v2f vert (appdata_base v)
  43.             {
  44.                 v2f o;
  45.                 float4 vPos = mul (UNITY_MATRIX_MV, v.vertex);             
  46.                 float zOff = vPos.z/_Dist;             
  47.                 vPos += _QOffset*zOff*zOff;
  48.                 o.pos = mul (UNITY_MATRIX_P, vPos);            
  49.                 o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
  50.  
  51.                 // This is lightning model
  52.                 half3 worldNormal = UnityObjectToWorldNormal(v.normal);
  53.                 float nl = max(0, dot(worldNormal, _WorldSpaceLightPos0.xyz));
  54.                 float hLambert = dot(nl*0.5 + 0.5, 2);
  55.                 o.diffColor = hLambert * _LightColor0;
  56.                 o.diffColor.rgb += ShadeSH9(float4(worldNormal,1));
  57.                
  58.                 return o;
  59.                
  60.             }
  61.  
  62.        
  63.             fixed4 frag (v2f i) : COLOR
  64.             {
  65.                 //fixed4 color = tex2D(_MainTex, i.uv) * _Color;
  66.                 float4 color = tex2D(_MainTex, i.uv)  * float4(_Color.r, _Color.g, _Color.b, _Alpha) * float4(i.diffColor,1);
  67.                 return color;
  68.             }
  69.             ENDCG
  70.         }
  71.        
  72.     }
  73.  
  74. //FallBack "Legacy Shaders/Transparent/VertexLit"
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement