#version 450 core #pragma include ./shared.glsl #pragma include ../misc/glow.glsl #pragma include ../misc/global.glsl const GlowArgs GLOW_ARGS = { /* step0 */ 0.480, /* step1 */ 0.975, /* pulseSize0 */ 0.010, /* pulseSize1 */ 0.050, /* pulseTime */ 2.000, }; in FragmentData fragmentData; flat in int textureId; uniform sampler2D uTexture[2]; out vec4 outColor; void main() { float alpha = glow(GLOW_ARGS, fragmentData.texCoords, uGlobal.time); vec4 glow = vec4(fragmentData.color.rgb, fragmentData.color.a * alpha); vec4 tex = texture(uTexture[textureId], 0.5 * GLOW_SIZE * fragmentData.texCoords + vec2(0.5)); outColor = tex * tex.a + glow * (1.0 - tex.a); }