Dicewars-Siedler/assets/shaders/fragmentShader.glsl
2026-02-21 10:36:37 +01:00

30 lines
729 B
GLSL

#version 400 core
in vec2 pass_textureCoords;
in vec3 surfaceNormal;
in vec3 toLightVector;
out vec4 outColor;
uniform sampler2D textureSampler;
uniform vec3 lightColor;
uniform vec3 ghostColor;
uniform float pulse;
uniform bool ghostMode;
void main(void) {
vec3 unitNormal = normalize(surfaceNormal);
vec3 unitToLightDir = normalize(toLightVector);
float cosTheta = dot(unitNormal, unitToLightDir);
float brightness = max(cosTheta, 0.2);
vec3 diffuse = brightness * lightColor;
vec4 finalColor = vec4(diffuse, 1.0f) * texture(textureSampler, pass_textureCoords);
if(ghostMode) {
finalColor = vec4(mix(finalColor.xyz, ghostColor, 0.5) * pulse, 1.0f);
}
outColor = finalColor;
}