ToonBasic.shader 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
  2. Shader "Toon/Basic" {
  3. Properties {
  4. _Color ("Main Color", Color) = (.5,.5,.5,1)
  5. _MainTex ("Base (RGB)", 2D) = "white" {}
  6. _ToonShade ("ToonShader Cubemap(RGB)", CUBE) = "" { }
  7. }
  8. SubShader {
  9. Tags { "RenderType"="Opaque" }
  10. Pass {
  11. Name "BASE"
  12. Cull Off
  13. CGPROGRAM
  14. #pragma vertex vert
  15. #pragma fragment frag
  16. #pragma multi_compile_fog
  17. #include "UnityCG.cginc"
  18. sampler2D _MainTex;
  19. samplerCUBE _ToonShade;
  20. float4 _MainTex_ST;
  21. float4 _Color;
  22. struct appdata {
  23. float4 vertex : POSITION;
  24. float2 texcoord : TEXCOORD0;
  25. float3 normal : NORMAL;
  26. };
  27. struct v2f {
  28. float4 pos : SV_POSITION;
  29. float2 texcoord : TEXCOORD0;
  30. float3 cubenormal : TEXCOORD1;
  31. UNITY_FOG_COORDS(2)
  32. };
  33. v2f vert (appdata v)
  34. {
  35. v2f o;
  36. o.pos = UnityObjectToClipPos (v.vertex);
  37. o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
  38. o.cubenormal = mul (UNITY_MATRIX_MV, float4(v.normal,0));
  39. UNITY_TRANSFER_FOG(o,o.pos);
  40. return o;
  41. }
  42. fixed4 frag (v2f i) : SV_Target
  43. {
  44. fixed4 col = _Color * tex2D(_MainTex, i.texcoord);
  45. fixed4 cube = texCUBE(_ToonShade, i.cubenormal);
  46. fixed4 c = fixed4(2.0f * cube.rgb * col.rgb, col.a);
  47. UNITY_APPLY_FOG(i.fogCoord, c);
  48. return c;
  49. }
  50. ENDCG
  51. }
  52. }
  53. Fallback "VertexLit"
  54. }