From e5560f69e11051a85c1d54780a59a4fbd83d8ed9 Mon Sep 17 00:00:00 2001 From: tech kaczynski Date: Mon, 2 Nov 2026 16:20:50 +1000 Subject: fixed foliage shader lighting bug --- res/sdr/mdl_foliage.vs | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'res') diff --git a/res/sdr/mdl_foliage.vs b/res/sdr/mdl_foliage.vs index db9d7b6..1198009 100644 --- a/res/sdr/mdl_foliage.vs +++ b/res/sdr/mdl_foliage.vs @@ -28,9 +28,20 @@ out vec3 frag_lighting; void main() { vec3 world_normal = normalize((matNormal * vec4(vertexNormal, 0.0)).xyz); + + // float sun_diffuse = abs(dot(world_normal, sun_direction)); + // float moon_diffuse = abs(dot(world_normal, moon_direction)); + + // for stronger shading, use 0.3 + 0.7 * abs(...) + // float sun_diffuse = 0.5 + 0.5 * abs(dot(world_normal, sun_direction)); + // float moon_diffuse = 0.5 + 0.5 * abs(dot(world_normal, moon_direction)); float sun_diffuse = abs(dot(world_normal, sun_direction)); float moon_diffuse = abs(dot(world_normal, moon_direction)); + // hack to fix lighting at midday + float midday = smoothstep(0.7, 1.0, sun_direction.y); + sun_diffuse = mix(sun_diffuse, 0.65, midday); + vec3 ambient_light = ambient_colour * ambient_intensity; vec3 sun_light = sun_colour * sun_intensity * sun_diffuse; vec3 moon_light = moon_colour * moon_intensity * moon_diffuse; -- cgit v1.2.3