MaskedShader.shader 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. Shader "Custom/MaskedShader"
  2. {
  3. Properties
  4. {
  5. _MainTex ("Texture", 2D) = "white" {}
  6. _AlphaVideo ("Alpha Video", 2D) = "white" {}
  7. }
  8. SubShader
  9. {
  10. Tags { "RenderType"="Transparent" "Queue"="Transparent" }
  11. LOD 100
  12. Pass
  13. {
  14. Blend SrcAlpha OneMinusSrcAlpha
  15. CGPROGRAM
  16. #pragma vertex vert
  17. #pragma fragment frag
  18. #include "UnityCG.cginc"
  19. struct appdata
  20. {
  21. float4 vertex : POSITION;
  22. float2 uv : TEXCOORD0;
  23. };
  24. struct v2f
  25. {
  26. float2 uv : TEXCOORD0;
  27. float4 vertex : SV_POSITION;
  28. };
  29. sampler2D _MainTex;
  30. sampler2D _AlphaVideo;
  31. float4 _MainTex_ST;
  32. v2f vert (appdata v)
  33. {
  34. v2f o;
  35. o.vertex = UnityObjectToClipPos(v.vertex);
  36. o.uv = TRANSFORM_TEX(v.uv, _MainTex);
  37. return o;
  38. }
  39. fixed4 frag (v2f i) : SV_Target
  40. {
  41. fixed4 col = tex2D(_MainTex, i.uv);
  42. fixed alpha = tex2D(_AlphaVideo, i.uv).r; // Assuming the alpha is in the red channel
  43. return fixed4(col.rgb, alpha);
  44. }
  45. ENDCG
  46. }
  47. }
  48. }