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