ContrastComposite.shader 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
  2. Shader "Hidden/ContrastComposite" {
  3. Properties {
  4. _MainTex ("Base (RGB)", 2D) = "" {}
  5. _MainTexBlurred ("Base Blurred (RGB)", 2D) = "" {}
  6. }
  7. // Shader code pasted into all further CGPROGRAM blocks
  8. CGINCLUDE
  9. #include "UnityCG.cginc"
  10. struct v2f {
  11. float4 pos : POSITION;
  12. float2 uv : TEXCOORD0;
  13. };
  14. sampler2D _MainTex;
  15. sampler2D _MainTexBlurred;
  16. float intensity;
  17. float threshhold;
  18. v2f vert( appdata_img v ) {
  19. v2f o;
  20. o.pos = UnityObjectToClipPos(v.vertex);
  21. o.uv = v.texcoord.xy;
  22. return o;
  23. }
  24. half4 frag(v2f i) : COLOR
  25. {
  26. half4 color = tex2D (_MainTex, i.uv);
  27. half4 blurred = tex2D (_MainTexBlurred, (i.uv));
  28. half4 difff = color - blurred;
  29. half4 signs = sign (difff);
  30. difff = saturate ( (color-blurred) - threshhold) * signs * 1.0/(1.0-threshhold);
  31. color += difff * intensity;
  32. return color;
  33. }
  34. ENDCG
  35. Subshader {
  36. Pass {
  37. ZTest Always Cull Off ZWrite Off
  38. Fog { Mode off }
  39. CGPROGRAM
  40. #pragma fragmentoption ARB_precision_hint_fastest
  41. #pragma vertex vert
  42. #pragma fragment frag
  43. ENDCG
  44. }
  45. }
  46. Fallback off
  47. } // shader