Turn off softshadow for bounces

This commit is contained in:
Magnus Norddahl 2024-10-15 19:33:54 +02:00
commit 8bddbea0bd
4 changed files with 5 additions and 5 deletions

View file

@ -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)

View file

@ -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);

View file

@ -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);

View file

@ -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));