This commit is contained in:
Luca Conte 2025-05-08 14:24:14 +02:00
parent ddfe9bfc3c
commit 178c4a3782
1 changed files with 27 additions and 3 deletions

View File

@ -1,4 +1,28 @@
#version 330 core #version 330 core
float pi = 3.14159;
vec3 hsvToRgb(vec3 hsl) {
while (hsl.x > 1) {
hsl.x -= 1;
}
int hi = int(floor(hsl.x * 6));
float f = hsl.x * 6 - hi;
float p = hsl.z * (1 - hsl.y);
float q = hsl.z * (1 - hsl.y * f);
float t = hsl.z * (1 - hsl.y * (1 - f));
switch (hi) {
case 0: return vec3(hsl.z, t, p);
case 1: return vec3(q, hsl.z, p);
case 2: return vec3(p, hsl.z, t);
case 3: return vec3(p, q, hsl.z);
case 4: return vec3(t, p, hsl.z);
case 5: return vec3(hsl.z, p, q);
default: return vec3(0);
}
}
in float fragValue; in float fragValue;
flat in int pattern; flat in int pattern;
void main() { void main() {
@ -6,15 +30,15 @@ void main() {
vec4 fragColor2 = vec4(0.0, 1.0, 0.0, 1.0); vec4 fragColor2 = vec4(0.0, 1.0, 0.0, 1.0);
switch (pattern) { switch (pattern) {
case 0: case 0:
gl_FragColor = mix(fragColor1, fragColor2, fragValue); gl_FragColor = vec4(hsvToRgb(vec3(fragValue, 1, 1)), 1);
break; break;
case 1: case 1:
gl_FragColor = mix(fragColor1, fragColor2, step(0.5, fragValue)); gl_FragColor = vec4(hsvToRgb(vec3(0, fragValue, 1)), 1);
break; break;
case 2: case 2:
gl_FragColor = mix(fragColor1, fragColor2, smoothstep(0.4, 0.6, fragValue)); gl_FragColor = vec4(hsvToRgb(vec3(0, 1, fragValue)), 1);
break; break;
case 3: case 3: