1#version 460 core 2#extension GL_ARB_separate_shader_objects : enable 3#extension GL_ARB_shading_language_420pack : enable 4 5// includes 6 7#include "common/bloom_common.h" 8 9// sets 10 11#include "render/shaders/common/render_post_process_layout_common.h" 12 13 14layout(set = 1, binding = 0) uniform texture2D uTex; 15layout (input_attachment_index = 0, set = 1, binding = 1) uniform subpassInput uInputColor; 16layout(set = 1, binding = 2) uniform sampler uSampler; 17 18// in / out 19 20layout (location = 0) in vec2 inUv; 21 22layout (location = 0) out vec4 outColor; 23 24/////////////////////////////////////////////////////////////////////////////// 25// bloom upscale 26 27void main() 28{ 29 const vec2 uv = inUv; 30 vec3 color = bloomUpscale(uv, uPc.viewportSizeInvSize.zw, uTex, uSampler); 31 const vec3 baseColor = subpassLoad(uInputColor).rgb; 32 color = min((color + baseColor), CORE_BLOOM_CLAMP_MAX_VALUE); 33 34 outColor = vec4(color, 1.0); 35} 36 37