Advertisement
tonynogo

Demo 48 - Alpha depending camera

Jul 6th, 2017
7,455
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Shader "Custom/AlphaDependingDistance"
  2. {
  3.     Properties
  4.     {
  5.         _MainTex ("Texture", 2D) = "white" {}
  6.         _Radius ("Radius", Range(0.001, 500)) = 10
  7.     }
  8.     SubShader
  9.     {
  10.         Tags {"Queue"="Transparent" "RenderType"="Transparent" }
  11.  
  12.         Blend SrcAlpha OneMinusSrcAlpha
  13.  
  14.         Pass
  15.         {
  16.             CGPROGRAM
  17.             #pragma vertex vert
  18.             #pragma fragment frag
  19.             #include "UnityCG.cginc"
  20.  
  21.             struct v2f {
  22.                 float4 pos : SV_POSITION;
  23.                 float2 uv : TEXCOORD0;
  24.                 float4 worldPos : TEXCOORD1;
  25.             };
  26.  
  27.             sampler2D _MainTex;
  28.             float4 _MainTex_ST;
  29.  
  30.             v2f vert(appdata_base v) {
  31.                 v2f o;
  32.                 o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
  33.                 o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
  34.                 o.worldPos = mul(unity_ObjectToWorld, v.vertex);
  35.                 return o;
  36.             }
  37.  
  38.             float _Radius;
  39.  
  40.             fixed4 frag(v2f i) : SV_Target {
  41.                 fixed4 col = tex2D(_MainTex, i.uv);
  42.                 float dist = distance(i.worldPos, _WorldSpaceCameraPos);
  43.                 col.a = saturate(dist / _Radius);
  44.                 return col;
  45.             }
  46.  
  47.             ENDCG
  48.         }
  49.     }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement