summaryrefslogtreecommitdiff
path: root/assets/shaders/pbr_textured.vert
diff options
context:
space:
mode:
authoromniscient <17525998+omnisci3nce@users.noreply.github.com>2024-06-17 22:17:48 +1000
committeromniscient <17525998+omnisci3nce@users.noreply.github.com>2024-06-18 10:30:28 +1000
commit4b5695ce26a8f821dfac987e8e11a6ba5eeff610 (patch)
tree0cd8f80bdb0520ffcf0cd62851f72055d4ee5546 /assets/shaders/pbr_textured.vert
parentf1cb5bece520dba63fa77e4721909ab8f0a6c26f (diff)
start working on a immediate mode drawing API
Diffstat (limited to 'assets/shaders/pbr_textured.vert')
-rw-r--r--assets/shaders/pbr_textured.vert28
1 files changed, 28 insertions, 0 deletions
diff --git a/assets/shaders/pbr_textured.vert b/assets/shaders/pbr_textured.vert
new file mode 100644
index 0000000..40a6f29
--- /dev/null
+++ b/assets/shaders/pbr_textured.vert
@@ -0,0 +1,28 @@
+#version 410 core
+
+// Vertex attributes
+layout(location = 0) in vec3 inPosition;
+layout(location = 1) in vec3 inNormal;
+layout(location = 2) in vec2 inTexCoords;
+
+// Uniforms
+uniform MVP_Matrices {
+ mat4 model; // TODO: make model a push constant/raw uniform
+ mat4 view;
+ mat4 proj;
+} mvp;
+
+// Outputs
+layout(location = 0) out vec3 fragWorldPos;
+layout(location = 1) out vec3 fragNormal;
+layout(location = 2) out vec2 fragTexCoords;
+
+void main() {
+ fragWorldPos = vec3(mvp.model * vec4(inPosition, 1.0));
+ fragNormal = mat3(transpose(inverse(mvp.model))) * inNormal;
+ // fragNormal = inNormal;
+
+ fragTexCoords = inTexCoords;
+
+ gl_Position = mvp.proj * mvp.view * mvp.model * vec4(inPosition, 1.0);
+}