HSL to RGB
code:hlsl
float3 RGB;
float C = (1.0f - abs(2.0f * HSL.z - 1.0f)) * HSL.y;
float X = C * (1.0f - abs(fmod(HSL.x * 6.0f, 2.0f) - 1.0f));
float m = HSL.z - C / 2.0f;
float r = step(4.0f / 6.0f, HSL.x) * X + (1.0f - step(1.0f / 6.0f, HSL.x)) * C;
float g = (1.0f - step(3.0f / 6.0f, HSL.x)) * step(1.0f / 6.0f, HSL.x) * C + (1.0f - step(1.0f / 6.0f, HSL.x) * step(4.0f / 6.0f, HSL.x)) * X;
float b = step(3.0f / 6.0f, HSL.x) * (1.0f - step(5.0f / 6.0f, HSL.x)) * C + step(4.0f / 6.0f, HSL.x) * (1.0f - step(5.0f / 6.0f, HSL.x)) * X;
RGB.r = r + m;
RGB.g = g + m;
RGB.b = b + m;
return RGB;