#version 150 in vec4 color; in vec3 tint; in vec2 texCoord; in float textureIndex; in float alpha; in float rgb; in float rawColor; uniform sampler2D textures[3]; out vec4 fragColor; void main() { vec4 textureSample = texture(textures[0], texCoord) * int(textureIndex == 0) + texture(textures[1], texCoord) * int(textureIndex == 1) + texture(textures[2], texCoord) * int(textureIndex == 2); fragColor = vec4(vec3(textureSample.r * color.r + textureSample.g * color.g + textureSample.b * color.b + textureSample.a * color.a) * tint + textureSample.rgb * rgb + color.rgb * rawColor, max(alpha, textureSample.a)); }