layout(std430, binding=0) buffer coord3d { vec4 vertex[]; } ; // No local name for this one layout(std430, binding=1) buffer vel3d { vec4 velocity[]; } ; // No local name for this one layout(local_size_x=1) in; void main(){ if(velocity[gl_WorkGroupID.x].x == 0){ velocity[gl_WorkGroupID.x].x = vertex[gl_WorkGroupID.x].x / 10.0; } if(velocity[gl_WorkGroupID.x].z == 0){ velocity[gl_WorkGroupID.x].z = vertex[gl_WorkGroupID.x].z / 10.0; } velocity[gl_WorkGroupID.x].y -= 0.01; vertex[gl_WorkGroupID.x] += velocity[gl_WorkGroupID.x]; if(vertex[gl_WorkGroupID.x].y < -5.0){ velocity[gl_WorkGroupID.x].y *= -1.1; vertex[gl_WorkGroupID.x].y = -5; } }