Simplify radial light attenuation in shaders

#1094
This commit is contained in:
Wojtek Figat
2023-05-12 12:22:04 +02:00
parent 4e78b49cac
commit b30f845924
5 changed files with 21 additions and 26 deletions

View File

@@ -129,9 +129,8 @@ float4 GetLighting(float3 viewPos, LightData lightData, GBufferSample gBuffer, f
toLight = lightData.Position - gBuffer.WorldPos;
float distanceSqr = dot(toLight, toLight);
L = toLight * rsqrt(distanceSqr);
float distanceAttenuation = 1, lightRadiusMask = 1, spotAttenuation = 1;
GetRadialLightAttenuation(lightData, isSpotLight, N, distanceSqr, 1, toLight, L, NoL, distanceAttenuation, lightRadiusMask, spotAttenuation);
float attenuation = distanceAttenuation * lightRadiusMask * spotAttenuation;
float attenuation = 1;
GetRadialLightAttenuation(lightData, isSpotLight, N, distanceSqr, 1, toLight, L, NoL, attenuation);
shadow.SurfaceShadow *= attenuation;
shadow.TransmissionShadow *= attenuation;
}