HighlightingComposite.shader 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. Shader "Hidden/Highlighted/Composite"
  2. {
  3. Properties
  4. {
  5. [HideInInspector] _MainTex ("", 2D) = "" {}
  6. [HideInInspector] _HighlightingBuffer ("", 2D) = "" {}
  7. }
  8. SubShader
  9. {
  10. Pass
  11. {
  12. Lighting Off
  13. Fog { Mode off }
  14. ZWrite Off
  15. ZTest Always
  16. Cull Off
  17. CGPROGRAM
  18. #pragma vertex vert
  19. #pragma fragment frag
  20. #pragma fragmentoption ARB_precision_hint_fastest
  21. #pragma target 2.0
  22. #include "UnityCG.cginc"
  23. struct vs_input
  24. {
  25. float4 vertex : POSITION;
  26. float2 texcoord : TEXCOORD0;
  27. };
  28. struct ps_input
  29. {
  30. float4 pos : SV_POSITION;
  31. half2 uv0 : TEXCOORD0;
  32. half2 uv1 : TEXCOORD1;
  33. };
  34. uniform sampler2D _MainTex;
  35. uniform float4 _MainTex_ST;
  36. uniform float4 _MainTex_TexelSize;
  37. uniform sampler2D _HighlightingBuffer;
  38. ps_input vert(vs_input v)
  39. {
  40. ps_input o;
  41. o.pos = UnityObjectToClipPos(v.vertex);
  42. o.uv0 = UnityStereoScreenSpaceUVAdjust(v.texcoord, _MainTex_ST);
  43. o.uv1 = o.uv0;
  44. #if UNITY_UV_STARTS_AT_TOP
  45. if (_MainTex_TexelSize.y < 0)
  46. {
  47. o.uv1.y = 1-o.uv1.y;
  48. }
  49. #endif
  50. return o;
  51. }
  52. fixed4 frag(ps_input i) : SV_Target
  53. {
  54. fixed4 c1 = tex2D(_MainTex, i.uv0);
  55. fixed4 c2 = tex2D(_HighlightingBuffer, i.uv1);
  56. c1.rgb = lerp(c1.rgb, c2.rgb, c2.a);
  57. return c1;
  58. }
  59. ENDCG
  60. }
  61. }
  62. FallBack Off
  63. }