armory/Shaders/blur_adaptive_pass/blur_adaptive_pass.frag.glsl
2017-12-13 14:44:21 +01:00

33 lines
881 B
GLSL
Executable file

// Exclusive to SSR for now
#version 450
#include "compiled.glsl"
#include "std/gbuffer.glsl"
uniform sampler2D tex;
uniform sampler2D gbuffer0; // Roughness
uniform vec2 dirInv;
in vec2 texCoord;
out vec4 fragColor;
void main() {
float roughness = unpackFloat(texture(gbuffer0, texCoord).b).y;
// if (roughness == 0.0) { // Always blur for now, non blured output can produce noise
// fragColor.rgb = texture(tex, texCoord).rgb;
// return;
// }
if (roughness >= 0.8) { // No reflections
fragColor.rgb = texture(tex, texCoord).rgb;
return;
}
fragColor.rgb = texture(tex, texCoord + dirInv * 2.5).rgb;
fragColor.rgb += texture(tex, texCoord + dirInv * 1.5).rgb;
fragColor.rgb += texture(tex, texCoord).rgb;
fragColor.rgb += texture(tex, texCoord - dirInv * 1.5).rgb;
fragColor.rgb += texture(tex, texCoord - dirInv * 2.5).rgb;
fragColor.rgb /= vec3(5.0);
}