Fix incorrect Lambert Diffuse shadowing to use just N dot L for accurate lighting
#3615 #3616
This commit is contained in:
@@ -122,6 +122,10 @@ float4 GetLighting(float3 viewPos, LightData lightData, GBufferSample gBuffer, f
|
||||
|
||||
// Calculate shadow
|
||||
ShadowSample shadow = GetShadow(lightData, gBuffer, shadowMask);
|
||||
#if !LIGHTING_NO_DIRECTIONAL
|
||||
// Directional shadowing
|
||||
shadow.SurfaceShadow *= NoL;
|
||||
#endif
|
||||
|
||||
// Calculate attenuation
|
||||
if (isRadial)
|
||||
@@ -135,11 +139,6 @@ float4 GetLighting(float3 viewPos, LightData lightData, GBufferSample gBuffer, f
|
||||
shadow.TransmissionShadow *= attenuation;
|
||||
}
|
||||
|
||||
#if !LIGHTING_NO_DIRECTIONAL
|
||||
// Reduce shadow mapping artifacts
|
||||
shadow.SurfaceShadow *= saturate(NoL * 6.0f - 0.2f) * NoL;
|
||||
#endif
|
||||
|
||||
BRANCH
|
||||
if (shadow.SurfaceShadow + shadow.TransmissionShadow > 0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user