This repository has been archived on 2020-09-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
libs/qglview/shaders/post.frag

43 lines
1.4 KiB
GLSL

#version 130
uniform sampler2D t0, t1;//, t2;
uniform vec2 vsize;
uniform float clum;
uniform bool has_bloom;
float unpackDepth(vec4 dv) {
return dot(dv.rgb, vec3(65025., 255., 1.));
}
void main(void) {
vec2 tc = gl_TexCoord[0].xy;//, dt = 2. / vsize, dt2 = dt + dt;
vec4 bloom;
float tone = 1. / clum;
if (has_bloom) {
bloom = (texture2D(t1, tc) * 3. +
textureOffset(t1, tc, ivec2(2, 0)) * 2. +
textureOffset(t1, tc, ivec2(0, 2)) * 2. +
textureOffset(t1, tc, ivec2(-2, 0)) * 2. +
textureOffset(t1, tc, ivec2(0, -2)) * 2. +
textureOffset(t1, tc, ivec2(2, 2)) * 1.5 +
textureOffset(t1, tc, ivec2(2, -2)) * 1.5 +
textureOffset(t1, tc, ivec2(-2, -2)) * 1.5 +
textureOffset(t1, tc, ivec2(-2, 2)) * 1.5 +
textureOffset(t1, tc, ivec2(4, 0)) +
textureOffset(t1, tc, ivec2(0, 4)) +
textureOffset(t1, tc, ivec2(-4, 0)) +
textureOffset(t1, tc, ivec2(0, -4)) +
textureOffset(t1, tc, ivec2(4, 2)) +
textureOffset(t1, tc, ivec2(4, -2)) +
textureOffset(t1, tc, ivec2(-4, -2)) +
textureOffset(t1, tc, ivec2(-4, 2)) +
textureOffset(t1, tc, ivec2(2, 4)) +
textureOffset(t1, tc, ivec2(2, -4)) +
textureOffset(t1, tc, ivec2(-2, -4)) +
textureOffset(t1, tc, ivec2(-2, 4))) / 29.;
vec4 diff = texture2D(t0, tc);
gl_FragColor = max(diff * tone, bloom);// + vec4(0.01/(clum+0.1));
} else
gl_FragColor = texture2D(t0, tc) * tone;// + vec4(0.01/(clum+0.1));
}