#version 460 core layout(location = 0) in vec3 singleCoord; layout(location = 1) in vec3 locations; layout(location = 2) in float rotation; layout(location = 3) in float scale; uniform mat4x4 Camera; void main() { /**/ mat4x4 scalingMat = mat4x4 ( scale,0,0,0, 0,scale,0,0, 0,0,scale,0, 0,0,0,1 ); /**/ /**/ mat4x4 rotationMat = mat4x4 ( cos(rotation),-sin(rotation),0,0, sin(rotation),cos(rotation),0,0, 0,0,1,0, 0,0,0,1 ); /**/ gl_Position = Camera * ( rotationMat * scalingMat * vec4( singleCoord.xyz , 1) + vec4( locations.xyz , 0)); }