Advertisement
Guest User

Untitled

a guest
Feb 5th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --- Fur Shader ---
  2.  
  3. fixed4 _Color;
  4. sampler2D _MainTex;
  5. half _Glossiness;
  6. half _Metallic;
  7.  
  8. uniform float _FurLength;
  9. uniform float _Cutoff;
  10. uniform float _CutoffEnd;
  11. uniform float _EdgeFade;
  12.  
  13. uniform fixed3 _Gravity;
  14. uniform fixed _GravityStrength;
  15.  
  16. void vert (inout appdata_full v)
  17. {
  18.     fixed3 direction = lerp(v.normal, _Gravity * _GravityStrength + v.normal * (1-_GravityStrength), FUR_MULTIPLIER);
  19.     v.vertex.xyz += direction * _FurLength * FUR_MULTIPLIER * v.color.a;
  20.     //v.vertex.xyz += v.normal * _FurLength * FUR_MULTIPLIER * v.color.a;
  21. }
  22.  
  23. struct Input {
  24.     float2 uv_MainTex;
  25.     float3 viewDir;
  26. };
  27.  
  28. void surf (Input IN, inout SurfaceOutputStandard o) {
  29.     fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
  30.     o.Albedo = c.rgb;
  31.     o.Metallic = _Metallic;
  32.     o.Smoothness = _Glossiness;
  33.  
  34.     //o.Alpha = step(_Cutoff, c.a);
  35.     o.Alpha = step(lerp(_Cutoff,_CutoffEnd,FUR_MULTIPLIER), c.a);
  36.  
  37.     float alpha = 1 - (FUR_MULTIPLIER * FUR_MULTIPLIER);
  38.     alpha += dot(IN.viewDir, o.Normal) - _EdgeFade;
  39.  
  40.     o.Alpha *= alpha;
  41. }
  42.  
  43.     SubShader {
  44.         Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
  45.         ZWrite On
  46.         LOD 200
  47.  
  48.         CGPROGRAM
  49.         #pragma surface surf Standard fullforwardshadows
  50.         #pragma target 3.0
  51.  
  52.         fixed4 _Color;
  53.         sampler2D _MainTex;
  54.         half _Glossiness;
  55.         half _Metallic;
  56.  
  57.         struct Input {
  58.             float2 uv_MainTex;
  59.         };
  60.  
  61.         void surf (Input IN, inout SurfaceOutputStandard o) {
  62.             fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
  63.             o.Albedo = c.rgb;
  64.             o.Metallic = _Metallic;
  65.             o.Smoothness = _Glossiness;
  66.             o.Alpha = c.a;
  67.         }
  68.         ENDCG
  69.  
  70.  
  71.         CGPROGRAM
  72.         #pragma surface surf Standard fullforwardshadows alpha:blend vertex:vert
  73.         #define FUR_MULTIPLIER 0.025
  74.         #include "FurPass.cginc"
  75.         ENDCG
  76.  
  77.         CGPROGRAM
  78.         #pragma surface surf Standard fullforwardshadows alpha:blend vertex:vert
  79.         #define FUR_MULTIPLIER 0.05
  80.         #include "FurPass.cginc"
  81.         ENDCG
  82.  
  83.         CGPROGRAM
  84.         #pragma surface surf Standard fullforwardshadows alpha:blend vertex:vert
  85.         #define FUR_MULTIPLIER 0.075
  86.         #include "FurPass.cginc"
  87.         ENDCG
  88.     }
  89.  
  90. --- Dissolve Shader ---
  91.         struct Input {
  92.             float2 uv_MainTex;
  93.         };
  94.  
  95.         void surf (Input IN, inout SurfaceOutput o) {
  96.  
  97.             fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
  98.  
  99.             half dissolve = tex2D(_DissolveMap, IN.uv_MainTex).rbg - _DissolveAmount * 1.1f;
  100.             clip(dissolve);
  101.            
  102.             if (dissolve < _BurnSize && _DissolveAmount > 0)
  103.             {
  104.                 o.Emission = tex2D(_BurnRamp, float2(dissolve * (1 / _BurnSize), 0)) * _EmissionAmount;
  105.             }
  106.  
  107.             o.Albedo = c.rgb;
  108.             o.Alpha = c.a;
  109.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement