#version 300 es precision mediump float; in vec4 color; in vec2 texCoord; in float textureIndex; uniform sampler2D textures[8]; out vec4 fragColor; void main() { fragColor = vec4(0, 0, 0, 0); fragColor += texture(textures[0], texCoord) * (step(-0.5, textureIndex) - step(0.5, textureIndex)); fragColor += texture(textures[1], texCoord) * (step(0.5, textureIndex) - step(1.5, textureIndex)); fragColor += texture(textures[2], texCoord) * (step(1.5, textureIndex) - step(2.5, textureIndex)); fragColor += texture(textures[3], texCoord) * (step(2.5, textureIndex) - step(3.5, textureIndex)); fragColor += texture(textures[4], texCoord) * (step(3.5, textureIndex) - step(4.5, textureIndex)); fragColor += texture(textures[5], texCoord) * (step(4.5, textureIndex) - step(5.5, textureIndex)); fragColor += texture(textures[6], texCoord) * (step(5.5, textureIndex) - step(6.5, textureIndex)); fragColor += texture(textures[7], texCoord) * (step(6.5, textureIndex) - step(7.5, textureIndex)); fragColor *= color; }