summaryrefslogtreecommitdiff
path: root/shaders
diff options
context:
space:
mode:
authorAaditya Dhruv <[email protected]>2026-01-28 22:05:14 -0600
committerAaditya Dhruv <[email protected]>2026-01-28 22:05:14 -0600
commit3729fe29b862a8b1d58967c45942535e7087b73b (patch)
treeb444560dff8d1b3480856484b2ab5bb7f02d9d00 /shaders
parentc289fc917a370cb421b25e44c6b28e21b58d7296 (diff)
Add basic directional light
Diffstat (limited to 'shaders')
-rw-r--r--shaders/fragment.glsl11
-rw-r--r--shaders/light.glsl5
-rw-r--r--shaders/vertex.glsl6
3 files changed, 21 insertions, 1 deletions
diff --git a/shaders/fragment.glsl b/shaders/fragment.glsl
index da55675..e3bd9db 100644
--- a/shaders/fragment.glsl
+++ b/shaders/fragment.glsl
@@ -1,6 +1,15 @@
#version 410 core
out vec4 frag_colour;
uniform vec3 face_colors[6];
+uniform vec3 light_color;
+in vec3 normal;
+in vec3 frag_pos;
void main() {
- frag_colour = vec4( face_colors[gl_PrimitiveID/2], 1.0 );
+ vec3 ambient_color = vec3(0.1);
+ vec3 norm = normalize(normal);
+ vec3 light_dir = normalize(vec3(1.0f, 1.0f, 1.0f));
+ float diff = max(dot(norm, light_dir), 0.0);
+ vec3 diffuse = diff * vec3(1.0);
+
+ frag_colour = vec4((ambient_color + diffuse) * face_colors[gl_PrimitiveID/2], 1.0);
};
diff --git a/shaders/light.glsl b/shaders/light.glsl
new file mode 100644
index 0000000..a68fb43
--- /dev/null
+++ b/shaders/light.glsl
@@ -0,0 +1,5 @@
+#version 410 core
+out vec4 frag_colour;
+void main() {
+ frag_colour = vec4(1.0);
+};
diff --git a/shaders/vertex.glsl b/shaders/vertex.glsl
index 9ae73dc..2af2c7e 100644
--- a/shaders/vertex.glsl
+++ b/shaders/vertex.glsl
@@ -1,9 +1,15 @@
#version 410 core
layout(location=0) in vec3 pos;
+layout(location=1) in vec3 v_normal;
uniform mat4 model;
uniform mat4 view;
uniform mat4 perspective;
+out vec3 normal;
+out vec3 frag_pos;
void main() {
gl_Position = perspective*view*model*vec4(pos, 1.0);
+ normal = v_normal;
+ frag_pos = vec3(model*vec4(pos, 1.0));
+
};