Shader "Custom/RGBtoHSV" {
Properties
{
_H("hue",Range(0,360))=0.1
_S("saturation",Range(0,1.0))=0
_V("value",Range(0, 1.0)) = 0
_A("Alpha", Range(0,1.0))=1.0
}
SubShader
{
Tags { "Queue"="Transparent" "RenderType"="Transparent" }
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target 2.0
uniform fixed _H;
uniform fixed _S;
uniform fixed _V;
uniform fixed _A;
fixed4 HSVtoRGB()
{
fixed R;
fixed G;
fixed B;
if (_S == 0)
{
R = G = B = _V;
}
else
{
_H /= 60;
fixed i = (int)_H;
fixed f = _H-i;
fixed a = _V*(1 - _S);
fixed b = _V*(1 - f*_S);
fixed c = _V*(1 - (1 - f)*_S);
if (i == 0)
{
R = _V; G = c; B = a;
}
else if (i == 1)
{
R = b; G = _V; B = a;
}
else if (i == 2)
{
R = a; G = _V; B = c;
}
else if (i == 3)
{
R = a; G = b; B = _V;
}
else if (i == 4)
{
R = c; G = a; B = _V;
}
else if (i == 5)
{
R = _V; G = a; B = b;
}
}
return fixed4(R, G, B,_A);
}
float4 vert(float4 v:POSITION) : SV_POSITION
{
return mul(UNITY_MATRIX_MVP, v);
}
fixed4 frag() : COLOR
{
return HSVtoRGB();
}
ENDCG
}
}
FallBack "Diffuse"
}
Shader "Custom/RGBtoHSV" {
Properties
{
_H("hue",Range(0,360))=0.1
_S("saturation",Range(0,1.0))=0
_V("value",Range(0, 1.0)) = 0
_A("Alpha", Range(0,1.0))=1.0
}
SubShader
{
Tags { "Queue"="Transparent" "RenderType"="Transparent" }
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target 2.0
uniform fixed _H;
uniform fixed _S;
uniform fixed _V;
uniform fixed _A;
fixed4 HSVtoRGB()
{
fixed R;
fixed G;
fixed B;
if (_S == 0)
{
R = G = B = _V;
}
else
{
_H /= 60;
fixed i = (int)_H;
fixed f = _H-i;
fixed a = _V*(1 - _S);
fixed b = _V*(1 - f*_S);
fixed c = _V*(1 - (1 - f)*_S);
if (i == 0)
{
R = _V; G = c; B = a;
}
else if (i == 1)
{
R = b; G = _V; B = a;
}
else if (i == 2)
{
R = a; G = _V; B = c;
}
else if (i == 3)
{
R = a; G = b; B = _V;
}
else if (i == 4)
{
R = c; G = a; B = _V;
}
else if (i == 5)
{
R = _V; G = a; B = b;
}
}
return fixed4(R, G, B,_A);
}
float4 vert(float4 v:POSITION) : SV_POSITION
{
return mul(UNITY_MATRIX_MVP, v);
}
fixed4 frag() : COLOR
{
return HSVtoRGB();
}
ENDCG
}
}
FallBack "Diffuse"
}