You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
793 B

  1. Shader "Hidden/SimpleContrastNode"
  2. {
  3. Properties
  4. {
  5. _A ( "_RBG", 2D ) = "white" {}
  6. _B ( "_Fraction", 2D ) = "white" {}
  7. }
  8. SubShader
  9. {
  10. Pass
  11. {
  12. CGPROGRAM
  13. #include "UnityCG.cginc"
  14. #pragma vertex vert_img
  15. #pragma fragment frag
  16. uniform sampler2D _A;
  17. uniform sampler2D _B;
  18. float4 CalculateContrast ( float contrastValue, float4 colorTarget )
  19. {
  20. float t = 0.5 * ( 1.0 - contrastValue );
  21. return mul ( float4x4( contrastValue, 0, 0, t, 0, contrastValue, 0, t, 0, 0, contrastValue, t, 0, 0, 0, 1 ), colorTarget );
  22. }
  23. float4 frag ( v2f_img i ) : SV_Target
  24. {
  25. float4 rgba = tex2D ( _B, i.uv );
  26. float value = tex2D ( _A, i.uv ).r;
  27. float4 finalColor = CalculateContrast( value , rgba );
  28. return finalColor;
  29. }
  30. ENDCG
  31. }
  32. }
  33. }