From 893b313643db51960a5e1eb95f7132c9175d0ad8 Mon Sep 17 00:00:00 2001 From: N8n5h Date: Sun, 27 Dec 2020 16:02:35 -0300 Subject: [PATCH] Solve artifact with clustering of lights Changed how a spot light is detected when sampling light, which caused false positives and produced that visual artifact when a cluster/pixel was detected incorrectly as being lit with a spot light when maybe none were there. This issue seems somewhat related to that issue that prevents rendering spotlights and point lights shadow at the same time. --- Shaders/deferred_light/deferred_light.frag.glsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Shaders/deferred_light/deferred_light.frag.glsl b/Shaders/deferred_light/deferred_light.frag.glsl index c30e3da4..c9ac4da2 100644 --- a/Shaders/deferred_light/deferred_light.frag.glsl +++ b/Shaders/deferred_light/deferred_light.frag.glsl @@ -403,7 +403,7 @@ void main() { , li, lightsArray[li * 2].w, true // bias #endif #ifdef _Spot - , li > numPoints - 1 + , lightsArray[li * 2 + 1].w != 0.0 , lightsArray[li * 2 + 1].w // cutoff , lightsArraySpot[li].w // cutoff - exponent , lightsArraySpot[li].xyz // spotDir