Add smooth light brightness fade out at last 10% of ViewDistance (if used)

This commit is contained in:
Wojtek Figat
2024-08-12 18:32:33 +02:00
parent f025f923ae
commit 596ad18ce3
4 changed files with 20 additions and 7 deletions

View File

@@ -130,7 +130,7 @@ void SpotLight::Draw(RenderContext& renderContext)
{
float brightness = ComputeBrightness();
AdjustBrightness(renderContext.View, brightness);
const Float3 position = GetPosition() - renderContext.View.Origin;
Float3 position;
const float radius = GetScaledRadius();
const float outerConeAngle = GetOuterConeAngle();
if (EnumHasAnyFlags(renderContext.View.Flags, ViewFlags::SpotLights)
@@ -138,7 +138,7 @@ void SpotLight::Draw(RenderContext& renderContext)
&& brightness > ZeroTolerance
&& radius > ZeroTolerance
&& outerConeAngle > ZeroTolerance
&& (ViewDistance < ZeroTolerance || Vector3::DistanceSquared(renderContext.View.Position, position) < ViewDistance * ViewDistance))
&& CheckViewDistance(renderContext.View.Position, renderContext.View.Origin, position, brightness))
{
RenderSpotLightData data;
data.Position = position;