ScreenCutoutShader.shader 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
  2. Shader "Unlit/ScreenCutoutShader"
  3. {
  4. Properties
  5. {
  6. _MainTex ("Texture", 2D) = "white" {}
  7. }
  8. SubShader
  9. {
  10. Tags{ "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" }
  11. Lighting Off
  12. Cull Back
  13. ZWrite On
  14. ZTest Less
  15. Fog{ Mode Off }
  16. Pass
  17. {
  18. CGPROGRAM
  19. #pragma vertex vert
  20. #pragma fragment frag
  21. #include "UnityCG.cginc"
  22. struct appdata
  23. {
  24. float4 vertex : POSITION;
  25. float2 uv : TEXCOORD0;
  26. };
  27. struct v2f
  28. {
  29. //float2 uv : TEXCOORD0;
  30. float4 vertex : SV_POSITION;
  31. float4 screenPos : TEXCOORD1;
  32. };
  33. v2f vert (appdata v)
  34. {
  35. v2f o;
  36. o.vertex = UnityObjectToClipPos(v.vertex);
  37. o.screenPos = ComputeScreenPos(o.vertex);
  38. return o;
  39. }
  40. sampler2D _MainTex;
  41. fixed4 frag (v2f i) : SV_Target
  42. {
  43. i.screenPos /= i.screenPos.w;
  44. fixed4 col = tex2D(_MainTex, float2(i.screenPos.x, i.screenPos.y));
  45. return col;
  46. }
  47. ENDCG
  48. }
  49. }
  50. }