Shader "Custom/AvaliPen"
{
    Properties
    {
		_DetColorH ("Detail Color Hue", Range (0, 1)) = 0
		_DetColorS ("Detail Color Sat", Range (0, 1)) = 0
		_DetColorV ("Detail Color Val", Range (0, 1)) = 0
    }

    SubShader
    {
		Pass
		{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			
			
            struct v2f {
                float2 uv : TEXCOORD0;
                float4 pos : SV_POSITION;
            };
			
			float _DetColorH;		
			float _DetColorS;		
			float _DetColorV;		
					
			fixed3 hsv2rgb(fixed3 c) {
				fixed4 K = fixed4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
				fixed3 p = abs(frac(c.xxx + K.xyz) * 6.0 - K.www);
				return c.z * lerp(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
			}
			
            v2f vert (
                float4 vertex : POSITION, // vertex position input
                float2 uv : TEXCOORD0 // first texture coordinate input
                )
            {
                v2f o;
                o.pos = UnityObjectToClipPos(vertex);
                o.uv = uv;
                return o;
            }
			
			
			fixed4 frag(v2f i) : SV_Target {
				fixed3 DetColor = hsv2rgb(fixed3(
					_DetColorH,
					_DetColorS,
					_DetColorV
				));
				
				return fixed4(DetColor, 1.0);
			}
			ENDCG
		}
    }
}
