first half-assed attempt at old wahsed-out post effect failed
[demo_prior] / sdr / oldfig.p.glsl
diff --git a/sdr/oldfig.p.glsl b/sdr/oldfig.p.glsl
new file mode 100644 (file)
index 0000000..a51e52c
--- /dev/null
@@ -0,0 +1,30 @@
+uniform sampler2D tex;
+
+vec3 rgb2hsv(in vec3 rgb);
+vec3 hsv2rgb(in vec3 hsv);
+
+void main()
+{
+       vec3 texel = texture2D(tex, gl_TexCoord[0].st).rgb;
+       vec3 hsv = rgb2hsv(texel);
+       vec3 rgb = hsv2rgb(hsv * vec3(0.97, 0.8, 0.9));
+
+       gl_FragColor = vec4(rgb, 1.0);
+}
+
+
+vec3 rgb2hsv(in vec3 rgb)
+{
+    vec4 k = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
+    vec4 p = mix(vec4(rgb.bg, k.wz), vec4(rgb.gb, k.xy), step(rgb.b, rgb.g));
+    vec4 q = mix(vec4(p.xyw, rgb.r), vec4(rgb.r, p.yzx), step(p.x, rgb.r));
+    float d = q.x - min(q.w, q.y);
+    float e = 1.0e-10;
+    return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
+}
+
+vec3 hsv2rgb(in vec3 hsv)
+{
+    vec3 rgb = clamp(abs(mod(hsv.x * 6.0 + vec3(0.0, 4.0, 2.0), 6.0) - 3.0) - 1.0, 0.0, 1.0 );
+       return hsv.z * mix(vec3(1.0), rgb, hsv.y);
+}