#version 330 core layout(location=0) in vec3 aPos; layout(location=1) in mat4 aOffset; // uniform mat4 Model; layout (std140) uniform Matrices { mat4 View; // start: 0 // end: 16 * 4 = 64 mat4 Projection; // start: 64 // end: 64 + 64 = 128 }; // @note: I still do not fully understand how the FragNormal calculation works. Need to make sure I intuitively // get that void main() { gl_Position = Projection*View*aOffset*vec4(aPos, 1.0); }