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 13layout(set = 1, binding = 0) uniform texture2D uTex; 14layout(set = 1, binding = 1) uniform sampler uSampler; 15 16// in / out 17 18layout (location = 0) in vec2 inUv; 19 20layout (location = 0) out vec4 outColor; 21 22/////////////////////////////////////////////////////////////////////////////// 23// bloom downscale 24 25void main() 26{ 27 // texSizeInvTexSize needs to be the output resolution 28 const vec2 uv = inUv; 29 30 vec3 color = vec3(0.0); 31 if ((CORE_BLOOM_QUALITY_NORMAL & CORE_POST_PROCESS_FLAGS) == CORE_BLOOM_QUALITY_NORMAL) { 32 color = bloomDownscale9(uv, uPc.viewportSizeInvSize.zw, uTex, uSampler); 33 } else { 34 color = bloomDownscale(uv, uPc.viewportSizeInvSize.zw, uTex, uSampler); 35 } 36 37 outColor = vec4(min(color, CORE_BLOOM_CLAMP_MAX_VALUE), 1.0); 38} 39