HSV
https://gyazo.com/288442075997720bcb7072d5c6c4ea0e
H
$ x = \frac{H}{60 \ {\rm deg}}とおき、
$ R = {\rm saturate}(|x \ {\rm mod} \ 6 - 3|-1)
$ G = {\rm saturate}(|(x + 4) \ {\rm mod} \ 6 - 3|-1)
$ B = {\rm saturate}(|(x + 2) \ {\rm mod} \ 6 - 3|-1)
https://gyazo.com/62d05a355499fb12522acbcb482fd404
その後
$ colHS = V * {\rm lerp}(\{1, 1, 1\}, \{R, G, B\}, S)
GLSL
code:glsl
vec3 hsv2rgb(vec3 hsv) {
vec3 h = saturate( abs( mod( 6.0 * hsv.x + vec3( 0, 4, 2 ), 6.0 ) - 3.0 ) - 1.0 );
return hsv.z * mix( vec3( 1.0 ), h, hsv.y );
}