diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2023-03-05 01:59:16 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2023-03-05 01:59:16 +0000 |
commit | d4c073a18adaed73973f34c6c39fc15664d9211d (patch) | |
tree | 44536af3af0284ab75eae79ef81a5e4452019269 /gfx/gl | |
parent | Add helper operator to perform vec3*mat4 and perspective divide (diff) | |
parent | Remove old hard coded asset factory test, run entirely from XML load and rend... (diff) | |
download | ilt-d4c073a18adaed73973f34c6c39fc15664d9211d.tar.bz2 ilt-d4c073a18adaed73973f34c6c39fc15664d9211d.tar.xz ilt-d4c073a18adaed73973f34c6c39fc15664d9211d.zip |
Merge branch 'model-factory'
Diffstat (limited to 'gfx/gl')
-rw-r--r-- | gfx/gl/shaders/basicShader.fs | 3 | ||||
-rw-r--r-- | gfx/gl/shaders/basicShader.vs | 3 | ||||
-rw-r--r-- | gfx/gl/shaders/landmassShader.vs | 3 | ||||
-rw-r--r-- | gfx/gl/shadowMapper.cpp | 7 | ||||
-rw-r--r-- | gfx/gl/shadowMapper.h | 1 |
5 files changed, 16 insertions, 1 deletions
diff --git a/gfx/gl/shaders/basicShader.fs b/gfx/gl/shaders/basicShader.fs index 9c4945b..93f0a3f 100644 --- a/gfx/gl/shaders/basicShader.fs +++ b/gfx/gl/shaders/basicShader.fs @@ -3,6 +3,7 @@ in vec3 FragPos; in vec2 TexCoords; in vec3 Normal; +in vec4 Colour; out vec4 gPosition; out vec4 gNormal; @@ -16,5 +17,5 @@ main() float clear = round(texture(texture0, TexCoords).a); gPosition = vec4(FragPos, clear); gNormal = vec4(Normal, clear); - gAlbedoSpec = texture(texture0, TexCoords); + gAlbedoSpec = mix(texture(texture0, TexCoords), vec4(Colour.rgb, 1), Colour.a); } diff --git a/gfx/gl/shaders/basicShader.vs b/gfx/gl/shaders/basicShader.vs index bc7ea5d..ff9a401 100644 --- a/gfx/gl/shaders/basicShader.vs +++ b/gfx/gl/shaders/basicShader.vs @@ -3,10 +3,12 @@ in vec3 position; in vec2 texCoord; in vec3 normal; +in vec4 colour; out vec3 FragPos; out vec2 TexCoords; out vec3 Normal; +out vec4 Colour; uniform mat4 viewProjection; uniform mat4 model; @@ -19,6 +21,7 @@ main() FragPos = worldPos.xyz; TexCoords = texCoord; Normal = (model * vec4(normal, 0.0)).xyz; + Colour = colour; gl_Position = viewProjection * worldPos; } diff --git a/gfx/gl/shaders/landmassShader.vs b/gfx/gl/shaders/landmassShader.vs index 6bf39b0..30c4ef4 100644 --- a/gfx/gl/shaders/landmassShader.vs +++ b/gfx/gl/shaders/landmassShader.vs @@ -3,10 +3,12 @@ in vec3 position; in vec2 texCoord; in vec3 normal; +in vec4 colour; out vec3 FragPos; out vec2 TexCoords; out vec3 Normal; +out vec4 Colour; uniform mat4 viewProjection; @@ -16,6 +18,7 @@ main() FragPos = position; TexCoords = texCoord; Normal = normal; + Colour = colour; gl_Position = viewProjection * vec4(position, 1.0); } diff --git a/gfx/gl/shadowMapper.cpp b/gfx/gl/shadowMapper.cpp index 1787ee6..7649a54 100644 --- a/gfx/gl/shadowMapper.cpp +++ b/gfx/gl/shadowMapper.cpp @@ -184,6 +184,13 @@ void ShadowMapper::DynamicPoint::use(const Location & location) const { glUseProgram(*this); + setModel(location); + const auto model = glm::translate(location.pos) * rotate_ypr(location.rot); + glUniformMatrix4fv(modelLoc, 1, GL_FALSE, glm::value_ptr(model)); +} +void +ShadowMapper::DynamicPoint::setModel(const Location & location) const +{ const auto model = glm::translate(location.pos) * rotate_ypr(location.rot); glUniformMatrix4fv(modelLoc, 1, GL_FALSE, glm::value_ptr(model)); } diff --git a/gfx/gl/shadowMapper.h b/gfx/gl/shadowMapper.h index b4793ed..a5c2c7b 100644 --- a/gfx/gl/shadowMapper.h +++ b/gfx/gl/shadowMapper.h @@ -34,6 +34,7 @@ public: DynamicPoint(); void setViewProjection(const glm::mat4 &) const; void use(const Location &) const; + void setModel(const Location &) const; private: RequiredUniformLocation viewProjectionLoc; |