blob: 2456a3c0406cbbe81aebf43502602f23d8aa5b31 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#version 330 core
layout(location=0) in vec3 aPos;
layout(location=1) in vec3 aNormal;
layout(location=2) in vec2 aTex;
layout(location=3) in mat4 aTransform;
// uniform mat4 Model;
layout (std140) uniform Matrices {
mat4 View; // start: 0 // end: 16 * 4 = 64
mat4 Projection; // start: 64 // end: 64 + 64 = 128
};
uniform mat4 Model;
out vec2 TexCoords;
out vec3 VertexWorldPos;
out vec3 FragNormal;
// @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*aTransform*vec4(aPos, 1.0);
VertexWorldPos = vec3(aTransform * vec4(aPos, 1.0));
FragNormal = mat3(transpose(inverse(aTransform))) * aNormal;
FragNormal = normalize(FragNormal);
TexCoords = aTex;
};
|