[[vertex]] uniform mat4 mvp; in vec4 pos; in vec2 uvs; out vec3 uv; void main() { gl_Position = mvp * pos; uv = vec3(uvs, pos.w); } [[fragment]] #include "include/hsv.glsl" uniform mediump vec4 col; // in HSV in mediump vec3 uv; out mediump vec4 frag; void main() { mediump float sat = tan(atan(uv.y, uv.x)) * 0.5 + 0.5; frag = vec4(hsv2rgb(vec3(col.r, sat, uv.x)), 1.0); }