diff --git a/wadsrc/static/shaders/lightmap/frag_raytrace.glsl b/wadsrc/static/shaders/lightmap/frag_raytrace.glsl index 6607b1142..89474ce67 100644 --- a/wadsrc/static/shaders/lightmap/frag_raytrace.glsl +++ b/wadsrc/static/shaders/lightmap/frag_raytrace.glsl @@ -31,7 +31,7 @@ void main() for (uint j = LightStart; j < LightEnd; j++) { - incoming += TraceLight(origin, normal, lights[lightIndexes[j]], 0.0); + incoming += TraceLight(origin, normal, lights[lightIndexes[j]], 0.0, false); } #if defined(USE_BOUNCE) diff --git a/wadsrc/static/shaders/lightmap/frag_viewer.glsl b/wadsrc/static/shaders/lightmap/frag_viewer.glsl index d77d6ae2b..14e8d536d 100644 --- a/wadsrc/static/shaders/lightmap/frag_viewer.glsl +++ b/wadsrc/static/shaders/lightmap/frag_viewer.glsl @@ -29,7 +29,7 @@ void main() uint LightEnd = surface.LightEnd; for (uint j = LightStart; j < LightEnd; j++) { - incoming += TraceLight(surfacepos, surface.Normal, lights[lightIndexes[j]], 0.0); + incoming += TraceLight(surfacepos, surface.Normal, lights[lightIndexes[j]], 0.0, false); } // incoming *= TraceAmbientOcclusion(surfacepos, surface.Normal); diff --git a/wadsrc/static/shaders/lightmap/trace_bounce.glsl b/wadsrc/static/shaders/lightmap/trace_bounce.glsl index 09b14b310..3c00a1208 100644 --- a/wadsrc/static/shaders/lightmap/trace_bounce.glsl +++ b/wadsrc/static/shaders/lightmap/trace_bounce.glsl @@ -38,7 +38,7 @@ vec3 TraceBounceLight(vec3 origin, vec3 normal) for (uint j = LightStart; j < LightEnd; j++) { - incoming += TraceLight(surfacepos, surface.Normal, lights[lightIndexes[j]], result.t) * angleAttenuation; + incoming += TraceLight(surfacepos, surface.Normal, lights[lightIndexes[j]], result.t, true) * angleAttenuation; } } return incoming / float(SampleCount); diff --git a/wadsrc/static/shaders/lightmap/trace_light.glsl b/wadsrc/static/shaders/lightmap/trace_light.glsl index 1265909bb..08c62d4a7 100644 --- a/wadsrc/static/shaders/lightmap/trace_light.glsl +++ b/wadsrc/static/shaders/lightmap/trace_light.glsl @@ -3,7 +3,7 @@ vec3 TracePointLightRay(vec3 origin, vec3 lightpos, float tmin, vec3 rayColor); -vec3 TraceLight(vec3 origin, vec3 normal, LightInfo light, float extraDistance) +vec3 TraceLight(vec3 origin, vec3 normal, LightInfo light, float extraDistance, bool noSoftShadow) { const float minDistance = 0.01; vec3 incoming = vec3(0.0); @@ -29,7 +29,7 @@ vec3 TraceLight(vec3 origin, vec3 normal, LightInfo light, float extraDistance) #if defined(USE_SOFTSHADOWS) - if (light.SoftShadowRadius != 0.0) + if (!noSoftShadow && light.SoftShadowRadius != 0.0) { vec3 v = (abs(dir.x) > abs(dir.y)) ? vec3(0.0, 1.0, 0.0) : vec3(1.0, 0.0, 0.0); vec3 xdir = normalize(cross(dir, v));