#version 450 layout(std430, binding=0) buffer blockpos { vec4 position[]; }; in vec3 in_vertex; in vec2 in_texcoord; uniform mat4 mvp; out vec4 gl_Position; out vec2 f_texcoord; void main(void) { vec4 new_position = vec4(in_vertex, 1.0) + position[gl_InstanceID]; gl_Position = mvp * new_position; f_texcoord = in_texcoord; }