Advertisement
Guest User

ToonLit

a guest
Feb 20th, 2019
1,380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. Shader "Toon/Lit Test" {
  2. Properties {
  3. _Color ("Main Color", Color) = (0.5,0.5,0.5,1)
  4. _ToonTint("Toon Ramp Tint", Color) = (0.5,0.5,0.5,1)
  5. _MainTex ("Base (RGB)", 2D) = "white" {}
  6. _ToonOffset("Toon Offset", Range(0,1)) = 0.5
  7. _ToonBlur("Toon Blur", Range(0,0.5)) = 0.05
  8. }
  9.  
  10. SubShader {
  11. Tags { "RenderType"="Opaque" }
  12. LOD 200
  13.  
  14. CGPROGRAM
  15. #pragma surface surf ToonRamp
  16.  
  17. // custom lighting function that uses a texture ramp based
  18. // on angle between light direction and normal
  19. #pragma lighting ToonRamp exclude_path:prepass
  20.  
  21. float4 _ToonTint;
  22. float _ToonOffset, _ToonBlur;
  23. inline half4 LightingToonRamp(SurfaceOutput s, half3 lightDir, half atten)
  24. {
  25. #ifndef USING_DIRECTIONAL_LIGHT
  26. lightDir = normalize(lightDir);
  27. #endif
  28. float d = dot(s.Normal, lightDir) ;
  29. float3 ramp = smoothstep(_ToonOffset, _ToonOffset + _ToonBlur, d )+ _ToonTint;
  30.  
  31. half4 c;
  32. c.rgb = s.Albedo * _LightColor0.rgb * ramp * (atten * 2);
  33. c.a = 0;
  34. return c;
  35. }
  36.  
  37.  
  38. sampler2D _MainTex;
  39. float4 _Color;
  40.  
  41. struct Input {
  42. float2 uv_MainTex : TEXCOORD0;
  43. };
  44.  
  45. void surf (Input IN, inout SurfaceOutput o) {
  46. half4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
  47. o.Albedo = c.rgb;
  48. o.Alpha = c.a;
  49. }
  50. ENDCG
  51.  
  52. }
  53.  
  54. Fallback "Diffuse"
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement