#version 330 core layout(location=0) in vec3 aPos; layout(location=1) in vec2 aTex; uniform mat4 Model; layout (std140) uniform Matrices { mat4 View; // start: 0 // end: 16 * 4 = 64 mat4 Projection; // start: 64 // end: 64 + 64 = 128 }; out vec2 TexCoords; out vec3 VertexWorldPos; // @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*Model*vec4(aPos, 1.0); VertexWorldPos = vec3(Model * vec4(aPos, 1.0)); TexCoords = aTex; };