diff options
| author | Aaditya Dhruv <[email protected]> | 2026-01-28 22:05:14 -0600 |
|---|---|---|
| committer | Aaditya Dhruv <[email protected]> | 2026-01-28 22:05:14 -0600 |
| commit | 3729fe29b862a8b1d58967c45942535e7087b73b (patch) | |
| tree | b444560dff8d1b3480856484b2ab5bb7f02d9d00 /shaders | |
| parent | c289fc917a370cb421b25e44c6b28e21b58d7296 (diff) | |
Add basic directional light
Diffstat (limited to 'shaders')
| -rw-r--r-- | shaders/fragment.glsl | 11 | ||||
| -rw-r--r-- | shaders/light.glsl | 5 | ||||
| -rw-r--r-- | shaders/vertex.glsl | 6 |
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)); + }; |
