#version 450 core #include "common.glsl" #include "dof_common.glsl" in vec2 vUV; layout(binding = 0) uniform sampler2D uSharp; layout(binding = 1) uniform sampler2D uBlurred; layout(binding = 2) uniform sampler2D uDepth; layout(location = 0) out vec4 fragColor; void main() { vec3 sharp = texture(uSharp, vUV).rgb; vec4 blurred = texture(uBlurred, vUV); float coc = abs(cocFromDepth(linearDepth(texture(uDepth, vUV).r), vUV)); float m = smoothstep(0.02, 0.35, max(coc, blurred.a)); fragColor = vec4(mix(sharp, blurred.rgb, m), 1.0); }