From c0a0827a29536349f58e21023daf2963fb9247e6 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Thu, 18 Feb 2021 09:04:25 +0000 Subject: Add support for directional light color and an ambient color --- application/main.cpp | 2 ++ gfx/gl/shaders/basicShader.fs | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/application/main.cpp b/application/main.cpp index 7e23a16..bf40f1c 100644 --- a/application/main.cpp +++ b/application/main.cpp @@ -85,6 +85,8 @@ public: camera.RotateY(0.7854); shader.setView(camera.GetViewProjection()); shader.setUniform("lightDirection", glm::normalize(glm::vec3 {1, -1, 0})); + shader.setUniform("lightColor", {.6, .6, .6}); + shader.setUniform("ambientColor", {0.5, 0.5, 0.5}); auto t_start = std::chrono::high_resolution_clock::now(); const auto framelen = std::chrono::milliseconds {1000} / 120; diff --git a/gfx/gl/shaders/basicShader.fs b/gfx/gl/shaders/basicShader.fs index 7d79575..b6c011d 100644 --- a/gfx/gl/shaders/basicShader.fs +++ b/gfx/gl/shaders/basicShader.fs @@ -5,9 +5,11 @@ in vec3 normal0; uniform sampler2D sampler; uniform vec3 lightDirection; +uniform vec3 lightColor; +uniform vec3 ambientColor; void main() { gl_FragColor = texture(sampler, texCoord0); - gl_FragColor.xyz *= clamp(dot(-lightDirection, normal0), 0.0, 1.0); + gl_FragColor.xyz *= clamp(ambientColor + (dot(-lightDirection, normal0) * lightColor), 0.0, 1.0); } -- cgit v1.2.3