PaintTexturePreview_Builtin.shader 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // UNITY_SHADER_NO_UPGRADE
  2. Shader "Hidden/MTE/PaintTexturePreview"
  3. {
  4. Properties
  5. {
  6. _MainTex ("Albedo (RGB)", 2D) = "white" {}
  7. _NormalTex ("Normalmap", 2D) = "bump" {}
  8. _MaskTex ("Mask (RGB) Trans (A)", 2D) = "white" {}
  9. }
  10. CGINCLUDE
  11. #pragma surface surf Lambert vertex:vert alpha:blend nodynlightmap nolightmap nofog
  12. #include <Lighting.cginc>
  13. #include <UnityCG.cginc>
  14. struct Input
  15. {
  16. float4 pos : POSITION;
  17. float4 tex0 : TEXCOORD0;
  18. float4 tex1 : TEXCOORD1;
  19. };
  20. sampler2D _MainTex;
  21. sampler2D _MaskTex;
  22. sampler2D _NormalTex;
  23. float4x4 unity_Projector;
  24. float4 _MainTex_ST;
  25. void vert(inout appdata_full v, out Input o)
  26. {
  27. UNITY_INITIALIZE_OUTPUT(Input, o);
  28. o.pos = UnityObjectToClipPos(v.vertex);
  29. o.tex0.xy = TRANSFORM_TEX(v.texcoord, _MainTex);
  30. o.tex1 = mul(unity_Projector, v.vertex);
  31. }
  32. void surf(Input IN, inout SurfaceOutput o)
  33. {
  34. float4 color = tex2D(_MainTex, IN.tex0.xy);
  35. float4 mask = tex2Dproj(_MaskTex, UNITY_PROJ_COORD(IN.tex1));
  36. o.Albedo = color.rgb;
  37. o.Alpha = mask.a;
  38. o.Normal = UnpackNormal(tex2D(_NormalTex, IN.tex0.xy));
  39. o.Emission = 0;
  40. }
  41. ENDCG
  42. Category
  43. {
  44. Tags { "Queue"="Transparent" }
  45. Blend SrcAlpha OneMinusSrcAlpha
  46. SubShader//for target 3.0+
  47. {
  48. CGPROGRAM
  49. #pragma target 3.0
  50. ENDCG
  51. }
  52. SubShader//for target 2.5
  53. {
  54. CGPROGRAM
  55. #pragma target 2.5
  56. ENDCG
  57. }
  58. SubShader//for target 2.0
  59. {
  60. CGPROGRAM
  61. #pragma target 2.0
  62. ENDCG
  63. }
  64. }
  65. }