#version 450 in vec3 in_vertex; uniform mat4 mvp; out vec4 fcolor; out vec4 gl_Position; out vec2 f_texcoord; void main(void) { float pos_x = gl_InstanceID % 20; float pos_z = gl_InstanceID / 20; gl_Position = mvp * vec4(in_vertex.x + pos_x - 10, in_vertex.y - 1, in_vertex.z + pos_z - 10, 1.0); fcolor = vec4(0.6, in_vertex.x / 10.0 + 0.4, in_vertex.z / 10.0 + 0.6, 1.0); f_texcoord = vec2(in_vertex.x, in_vertex.z); }