From 9b918ae03cdbeccd610d9cec6665ca0d8dd0bfad Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Sat, 2 Jan 2021 19:39:43 +0000 Subject: Add shaders for lighting --- shaders/phong.frag.glsl | 20 ++++++++++++++++++++ shaders/phong.vert.glsl | 17 +++++++++++++++++ shaders/triangle.frag | 11 ----------- shaders/triangle.frag.glsl | 11 +++++++++++ shaders/triangle.vert | 15 --------------- shaders/triangle.vert.glsl | 15 +++++++++++++++ 6 files changed, 63 insertions(+), 26 deletions(-) create mode 100644 shaders/phong.frag.glsl create mode 100644 shaders/phong.vert.glsl delete mode 100644 shaders/triangle.frag create mode 100644 shaders/triangle.frag.glsl delete mode 100644 shaders/triangle.vert create mode 100644 shaders/triangle.vert.glsl 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 deleted file mode 100644 index 23f2f59..0000000 --- a/shaders/triangle.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 150 - -uniform vec4 ourColour; - -in vec4 colour; - -out vec4 fragColor; - -void main() { - fragColor = vec4(1.0, 0.5, 1.0, 1.0); -} diff --git a/shaders/triangle.frag.glsl b/shaders/triangle.frag.glsl new file mode 100644 index 0000000..4a7400f --- /dev/null +++ b/shaders/triangle.frag.glsl @@ -0,0 +1,11 @@ +#version 330 core + +uniform vec4 ourColour; + +in vec4 colour; + +out vec4 fragColor; + +void main() { + fragColor = vec4(1.0, 0.5, 1.0, 1.0); +} diff --git a/shaders/triangle.vert b/shaders/triangle.vert deleted file mode 100644 index 939f4a4..0000000 --- a/shaders/triangle.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 150 - -in vec3 position; - -uniform mat4 model; -uniform mat4 view; -uniform mat4 projection; - -out vec4 colour; - -void main() -{ - gl_Position = projection * view * model * vec4(position, 1.0); - colour = vec4(position, 1.0); -} diff --git a/shaders/triangle.vert.glsl b/shaders/triangle.vert.glsl new file mode 100644 index 0000000..8ce4dc9 --- /dev/null +++ b/shaders/triangle.vert.glsl @@ -0,0 +1,15 @@ +#version 330 core + +in vec3 position; + +out vec4 colour; + +uniform mat4 model; +uniform mat4 view; +uniform mat4 projection; + +void main() +{ + gl_Position = projection * view * model * vec4(position, 1.0); + colour = vec4(position, 1.0); +} -- cgit