#version 330 core uniform sampler2D u_tex0; layout (location = 0) out vec4 io_color; void main() { vec2 q = gl_FragCoord.xy; ivec2 p = ivec2(int(q[0]), int(q[1])); vec3 value = texelFetch(u_tex0, p, 0).rgb; float r = sin(cos(value.r + 0.1) * 3.0 + 1.2) * 0.5 + 0.5; float g = sin(cos(value.g + 0.2) * 2.9 + 0.8) * 0.5 + 0.5; float b = sin(cos(value.b + 0.3) * 3.1 + 0.5) * 0.5 + 0.5; io_color = vec4(r, g, b, 1); }