diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-02-18 09:04:25 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-02-18 09:04:25 +0000 |
commit | c0a0827a29536349f58e21023daf2963fb9247e6 (patch) | |
tree | 84748ccbb46eaad78da5bd8814a671f51fe88653 | |
parent | Allow setting any uniform in shaders (diff) | |
download | ilt-c0a0827a29536349f58e21023daf2963fb9247e6.tar.bz2 ilt-c0a0827a29536349f58e21023daf2963fb9247e6.tar.xz ilt-c0a0827a29536349f58e21023daf2963fb9247e6.zip |
Add support for directional light color and an ambient color
-rw-r--r-- | application/main.cpp | 2 | ||||
-rw-r--r-- | gfx/gl/shaders/basicShader.fs | 4 |
2 files changed, 5 insertions, 1 deletions
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);
}
|