diff options
author | talha <talha@talhaamir.xyz> | 2024-04-22 03:38:29 +0500 |
---|---|---|
committer | talha <talha@talhaamir.xyz> | 2024-04-22 03:38:29 +0500 |
commit | ca2835943ca4327ad08b54af480e0c6333df201f (patch) | |
tree | 1cac87ca6d6ceee89f91d8735f319805d4bad38e /source/shaders/instanced_model.vs.glsl | |
parent | 9900ffe840ee0e9f914b0e7956a4e80ffb553e9e (diff) |
Completed main levels to progress to text-rendering and 2d development.
- Only lessons left are geometry shaders and anti-aliasing
- will get to those later on soon
- need to do text rendering now
Diffstat (limited to 'source/shaders/instanced_model.vs.glsl')
-rw-r--r-- | source/shaders/instanced_model.vs.glsl | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/source/shaders/instanced_model.vs.glsl b/source/shaders/instanced_model.vs.glsl new file mode 100644 index 0000000..2456a3c --- /dev/null +++ b/source/shaders/instanced_model.vs.glsl @@ -0,0 +1,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; +}; |