summaryrefslogtreecommitdiff
path: root/source/lessons/instanced_rendering/planetary models/shaders/instanced_model.vs.glsl
diff options
context:
space:
mode:
authortalha <talha@talhaamir.xyz>2024-04-22 03:38:29 +0500
committertalha <talha@talhaamir.xyz>2024-04-22 03:38:29 +0500
commitca2835943ca4327ad08b54af480e0c6333df201f (patch)
tree1cac87ca6d6ceee89f91d8735f319805d4bad38e /source/lessons/instanced_rendering/planetary models/shaders/instanced_model.vs.glsl
parent9900ffe840ee0e9f914b0e7956a4e80ffb553e9e (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/lessons/instanced_rendering/planetary models/shaders/instanced_model.vs.glsl')
-rw-r--r--source/lessons/instanced_rendering/planetary models/shaders/instanced_model.vs.glsl29
1 files changed, 29 insertions, 0 deletions
diff --git a/source/lessons/instanced_rendering/planetary models/shaders/instanced_model.vs.glsl b/source/lessons/instanced_rendering/planetary models/shaders/instanced_model.vs.glsl
new file mode 100644
index 0000000..2456a3c
--- /dev/null
+++ b/source/lessons/instanced_rendering/planetary models/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;
+};