summaryrefslogtreecommitdiff
path: root/gfx/gl
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2023-02-24 19:29:27 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2023-02-24 19:29:27 +0000
commit2c6257a4460de7b0c75723aebf96cf265e078530 (patch)
treef1abacfc6f64b5718a7ef6398001655f0103bf04 /gfx/gl
parentFixed up vector operator+ element (diff)
downloadilt-2c6257a4460de7b0c75723aebf96cf265e078530.tar.bz2
ilt-2c6257a4460de7b0c75723aebf96cf265e078530.tar.xz
ilt-2c6257a4460de7b0c75723aebf96cf265e078530.zip
Support for model colours mixed with textures
Diffstat (limited to 'gfx/gl')
-rw-r--r--gfx/gl/shaders/basicShader.fs3
-rw-r--r--gfx/gl/shaders/basicShader.vs3
-rw-r--r--gfx/gl/shaders/landmassShader.vs3
3 files changed, 8 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);
}