X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=demo_prior;a=blobdiff_plain;f=sdr%2Foldfig.p.glsl;fp=sdr%2Foldfig.p.glsl;h=a51e52c9671c90a55371bcefd144eb812d326ebf;hp=0000000000000000000000000000000000000000;hb=5eefe7b94c8d6c6caa2c10e3835ab0831a3c42a1;hpb=ca5ddcfae04b0c10505325629d8a59e626811433 diff --git a/sdr/oldfig.p.glsl b/sdr/oldfig.p.glsl new file mode 100644 index 0000000..a51e52c --- /dev/null +++ b/sdr/oldfig.p.glsl @@ -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); +}