3 ms·
For shaders you're probably faster off if you use the expression #define saturate(x) clamp(x,0,1) rgb = saturate(vec3(abs(hue-180)/60 - 1, 2 - abs(hue-
by contravariant 7y ago
For shaders you're probably faster off if you use the expression
#define saturate(x) clamp(x,0,1)
rgb = saturate(vec3(abs(hue-180)/60 - 1, 2 - abs(hue-120)/60, 2 - abs(hue-240)/60))
Since it avoids the if/then. Although I'm not too sure if it will work well in GLSL as HLSL has better support for the saturate function (it can usually be merged with some other operator).
- kaoD 7y agoWorks fine in GLSL (https://www.shadertoy.com/view/tdV3DW https://www.shadertoy.com/view/tdV3DW) Starting on green and mapped to [0, 1] like op's: vec3 coolhue2(float h){ float h6 = 6.*h; return saturate( vec3( 2. - abs(h6 - 4.), abs(h6 - 3.) - 1., 2. - abs(h6 - 2.) )); }