From 56a50715e2d55d07d0ee4b0b2d4d439e323adec3 Mon Sep 17 00:00:00 2001 From: peri4 Date: Tue, 5 Sep 2023 13:54:32 +0300 Subject: [PATCH] fix double emission --- shaders/ds_light.glsl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/shaders/ds_light.glsl b/shaders/ds_light.glsl index 1f7e51c..8cc3f5a 100644 --- a/shaders/ds_light.glsl +++ b/shaders/ds_light.glsl @@ -301,7 +301,9 @@ void main(void) { vec3 diffuse = v0.rgb; normal = v1.xyz; geom_normal = v5.xyz; +#ifndef SPOT vec3 emission = v3.rgb; +#endif float alpha = v0.a; float metalness = v2.r; float roughness = v2.g; @@ -336,7 +338,10 @@ void main(void) { vec3 env_dir = view_mat * reflect(-v, normal); vec3 env_col = textureLod(tex_env, env_dir, sqrt(roughness) * max_lod).rgb * spec_col; - vec3 res_col = max(vec3(0.), li * diffuse + si * spec_col + emission); + vec3 res_col = max(vec3(0.), li * diffuse + si * spec_col); +#ifndef SPOT + res_col += emission; +#endif res_col = mix(res_col, env_col, env_spec * reflectivity); if (bitfieldExtract(flags, 1, 1) == 1) {