#type vertex #version 460 core layout(location = 0) in vec3 a_Position; layout(location = 1) in vec4 a_Color; layout(location = 2) in vec2 a_TexCoord; layout(location = 3) in float a_TexIndex; uniform mat4 u_ViewProjection; //uniform mat4 u_Transform; out vec2 v_TexCoord; out vec4 v_Color; out float v_TexIndex; void main() { v_TexCoord = a_TexCoord; v_Color = a_Color; v_TexIndex = a_TexIndex; gl_Position = u_ViewProjection * vec4(a_Position, 1.0f); } #type fragment #version 460 core layout(location = 0) out vec4 color; in vec2 v_TexCoord; in vec4 v_Color; in float v_TexIndex; uniform float u_TilingFactor; uniform vec4 u_Color; uniform sampler2D u_Textures[32]; void main() { color = texture(u_Textures[int(v_TexIndex)], v_TexCoord * u_TilingFactor) * v_Color; // color = v_Color; }