diff options
author | Yann Herklotz <git@yannherklotz.com> | 2021-01-02 19:39:43 +0000 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2021-01-02 19:39:43 +0000 |
commit | 9b918ae03cdbeccd610d9cec6665ca0d8dd0bfad (patch) | |
tree | 3fd0e214667fd8bc589aa748ae8f245471269937 | |
parent | 5d558623f359340416e386b3bd93ee9c1e3f4ad8 (diff) | |
download | Vivant-9b918ae03cdbeccd610d9cec6665ca0d8dd0bfad.tar.gz Vivant-9b918ae03cdbeccd610d9cec6665ca0d8dd0bfad.zip |
Add shaders for lighting
-rw-r--r-- | shaders/phong.frag.glsl | 20 | ||||
-rw-r--r-- | shaders/phong.vert.glsl | 17 | ||||
-rw-r--r-- | shaders/triangle.frag.glsl (renamed from shaders/triangle.frag) | 2 | ||||
-rw-r--r-- | shaders/triangle.vert.glsl (renamed from shaders/triangle.vert) | 6 |
4 files changed, 41 insertions, 4 deletions
diff --git a/shaders/phong.frag.glsl b/shaders/phong.frag.glsl new file mode 100644 index 0000000..a1a0645 --- /dev/null +++ b/shaders/phong.frag.glsl @@ -0,0 +1,20 @@ +#version 330 core + +in vec3 o_normal; +in vec3 o_frag_pos; + +out vec4 fragColour; + +uniform vec3 light_pos; + +void main() { + vec3 ambient = vec3(0.2, 0.2, 0.2); + vec3 light_colour = vec3(1.0, 1.0, 1.0); + vec3 object_colour = vec3(0.5, 0.2, 0.8); + vec3 norm = normalize(o_normal); + vec3 light_dir = normalize(light_pos - o_frag_pos); + float diff = max(dot(norm, light_dir), 0.0); + vec3 diffuse = diff * light_colour; + vec3 result = (ambient + diffuse) * object_colour; + fragColour = vec4(result, 1.0); +} diff --git a/shaders/phong.vert.glsl b/shaders/phong.vert.glsl new file mode 100644 index 0000000..589ccbe --- /dev/null +++ b/shaders/phong.vert.glsl @@ -0,0 +1,17 @@ +#version 330 core + +in vec3 position; +in vec3 normal; + +out vec3 o_normal; +out vec3 o_frag_pos; + +uniform mat4 model; +uniform mat4 view; +uniform mat4 projection; + +void main() { + gl_Position = projection * view * model * vec4(position, 1.0); + o_normal = normal; + o_frag_pos = vec3(model * vec4(position, 1.0)); +} diff --git a/shaders/triangle.frag b/shaders/triangle.frag.glsl index 23f2f59..4a7400f 100644 --- a/shaders/triangle.frag +++ b/shaders/triangle.frag.glsl @@ -1,4 +1,4 @@ -#version 150 +#version 330 core uniform vec4 ourColour; diff --git a/shaders/triangle.vert b/shaders/triangle.vert.glsl index 939f4a4..8ce4dc9 100644 --- a/shaders/triangle.vert +++ b/shaders/triangle.vert.glsl @@ -1,13 +1,13 @@ -#version 150 +#version 330 core in vec3 position; +out vec4 colour; + uniform mat4 model; uniform mat4 view; uniform mat4 projection; -out vec4 colour; - void main() { gl_Position = projection * view * model * vec4(position, 1.0); |