layout(std430, binding=0) buffer cubepos { vec4 position[]; }; in vec4 coord3d; in vec3 v_color; uniform mat4 mvp; out vec4 fcolor; out vec4 center; uniform float wind; void main(void) { float xdisp = position[gl_InstanceID].x; if(position[gl_InstanceID].y > -2){ xdisp += (position[gl_InstanceID].y+2)/5.0 * wind; } gl_Position = coord3d + vec4(xdisp, position[gl_InstanceID].yzw); fcolor = vec4(v_color, 1); center = vec4(xdisp, position[gl_InstanceID].yzw); }