aboutsummaryrefslogtreecommitdiff
path: root/07-july/resources/shaders/shader.vert
diff options
context:
space:
mode:
authorThomas Guillermo Albers Raviola <thomas@thomaslabs.org>2026-01-16 23:02:32 +0100
committerThomas Guillermo Albers Raviola <thomas@thomaslabs.org>2026-01-16 23:02:32 +0100
commit6b8af9cf83851c075c6c9514b1deaa931c2b19a4 (patch)
tree428986b49c32e21d3f7a3c2dfa41858ae0153209 /07-july/resources/shaders/shader.vert
Initial commit
Diffstat (limited to '07-july/resources/shaders/shader.vert')
-rw-r--r--07-july/resources/shaders/shader.vert38
1 files changed, 38 insertions, 0 deletions
diff --git a/07-july/resources/shaders/shader.vert b/07-july/resources/shaders/shader.vert
new file mode 100644
index 0000000..b8f10e6
--- /dev/null
+++ b/07-july/resources/shaders/shader.vert
@@ -0,0 +1,38 @@
+#version 420
+
+in layout(location=0) vec3 Model_Position;
+in layout(location=1) vec4 in_color;
+in layout(location=2) vec2 Texture_UV;
+in layout(location=3) vec3 Model_Normal;
+
+uniform mat4 Matrix_totalTransform;
+uniform mat4 Matrix_modelToWorld;
+
+uniform vec3 lightPosition[4];
+uniform vec3 World_eyePosition;
+
+out vec2 Fragment_UV;
+out vec3 World_Normal;
+out vec4 Fragment_Color;
+out vec3 toLightVector[4];
+out vec3 toEyeVector;
+
+void main()
+{
+ vec3 World_Position = vec3(Matrix_modelToWorld * vec4(Model_Position, 1.0));
+
+ for(int i = 0; i < 4; i++)
+ {
+ /* vector que apunta hacia la luz*/
+ toLightVector[i] = lightPosition[i] - World_Position;
+ }
+ /* Vector hacia el ojo*/
+ toEyeVector = normalize(World_eyePosition - World_Position);
+
+ gl_Position = Matrix_totalTransform * vec4(Model_Position, 1.0);
+ /*We add a 0 on the vec4 so we can remove the translation from the matrix
+ (WE DONT WANT THE NORMAL TO BE TRANSLATED) */
+ World_Normal = vec3(Matrix_modelToWorld * vec4(Model_Normal, 0.0));
+ Fragment_UV = vec2(Texture_UV.x, 1 - Texture_UV.y); /*Invert y axis*/
+ Fragment_Color = in_color;
+}