Preview_HSVToRGBNode.shader 829 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. Shader "Hidden/HSVToRGBNode"
  2. {
  3. Properties
  4. {
  5. _A ( "_Hue", 2D ) = "white" {}
  6. _B ( "_Saturation", 2D ) = "white" {}
  7. _C ( "_Value", 2D ) = "white" {}
  8. }
  9. SubShader
  10. {
  11. Pass
  12. {
  13. CGPROGRAM
  14. #include "UnityCG.cginc"
  15. #include "Preview.cginc"
  16. #pragma vertex vert_img
  17. #pragma fragment frag
  18. uniform sampler2D _A;
  19. uniform sampler2D _B;
  20. uniform sampler2D _C;
  21. float3 HSVToRGB( float3 c )
  22. {
  23. float4 K = float4( 1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0 );
  24. float3 p = abs( frac( c.xxx + K.xyz ) * 6.0 - K.www );
  25. return c.z * lerp( K.xxx, saturate( p - K.xxx ), c.y );
  26. }
  27. float4 frag ( v2f_img i ) : SV_Target
  28. {
  29. float h = tex2D ( _A, i.uv ).r;
  30. float s = tex2D ( _B, i.uv ).r;
  31. float v = tex2D ( _C, i.uv ).r;
  32. return float4( HSVToRGB(float3(h,s,v)), 1 );
  33. }
  34. ENDCG
  35. }
  36. }
  37. }