Various renamings

This commit is contained in:
Wojtek Figat
2024-03-26 14:27:10 +01:00
parent 01d91bf102
commit 4ab572426d
7 changed files with 78 additions and 77 deletions

View File

@@ -50,7 +50,7 @@ void ForwardShadingFeature::Bind(MaterialShader::BindParameters& params, Span<by
{
params.GPUContext->UnBindSR(dirLightShaderRegisterIndex);
}
dirLight.SetupLightData(&data.DirectionalLight, useShadow);
dirLight.SetShaderData(data.DirectionalLight, useShadow);
}
else
{
@@ -63,7 +63,7 @@ void ForwardShadingFeature::Bind(MaterialShader::BindParameters& params, Span<by
if (cache->SkyLights.HasItems())
{
auto& skyLight = cache->SkyLights.First();
skyLight.SetupLightData(&data.SkyLight, false);
skyLight.SetShaderData(data.SkyLight, false);
const auto texture = skyLight.Image ? skyLight.Image->GetTexture() : nullptr;
params.GPUContext->BindSR(skyLightShaderRegisterIndex, GET_TEXTURE_VIEW_SAFE(texture));
}
@@ -106,7 +106,7 @@ void ForwardShadingFeature::Bind(MaterialShader::BindParameters& params, Span<by
const auto& light = cache->PointLights[i];
if (CollisionsHelper::SphereIntersectsSphere(objectBounds, BoundingSphere(light.Position, light.Radius)))
{
light.SetupLightData(&data.LocalLights[data.LocalLightsCount], false);
light.SetShaderData(data.LocalLights[data.LocalLightsCount], false);
data.LocalLightsCount++;
}
}
@@ -115,7 +115,7 @@ void ForwardShadingFeature::Bind(MaterialShader::BindParameters& params, Span<by
const auto& light = cache->SpotLights[i];
if (CollisionsHelper::SphereIntersectsSphere(objectBounds, BoundingSphere(light.Position, light.Radius)))
{
light.SetupLightData(&data.LocalLights[data.LocalLightsCount], false);
light.SetShaderData(data.LocalLights[data.LocalLightsCount], false);
data.LocalLightsCount++;
}
}

View File

@@ -961,7 +961,7 @@ bool GlobalSurfaceAtlasPass::Render(RenderContext& renderContext, GPUContext* co
PROFILE_GPU_CPU_NAMED("Directional Light");
const bool useShadow = CanRenderShadow(renderContext.View, light);
// TODO: test perf/quality when using Shadow Map for directional light (ShadowsPass::Instance()->LastDirLightShadowMap) instead of Global SDF trace
light.SetupLightData(&data.Light, useShadow);
light.SetShaderData(data.Light, useShadow);
data.Light.Color *= light.IndirectLightingIntensity;
data.LightShadowsStrength = 1.0f - light.ShadowsStrength;
context->UpdateCB(_cb0, &data);
@@ -994,7 +994,7 @@ bool GlobalSurfaceAtlasPass::Render(RenderContext& renderContext, GPUContext* co
// Draw draw light
PROFILE_GPU_CPU_NAMED("Point Light");
const bool useShadow = CanRenderShadow(renderContext.View, light);
light.SetupLightData(&data.Light, useShadow);
light.SetShaderData(data.Light, useShadow);
data.Light.Color *= light.IndirectLightingIntensity;
data.LightShadowsStrength = 1.0f - light.ShadowsStrength;
context->UpdateCB(_cb0, &data);
@@ -1027,7 +1027,7 @@ bool GlobalSurfaceAtlasPass::Render(RenderContext& renderContext, GPUContext* co
// Draw draw light
PROFILE_GPU_CPU_NAMED("Spot Light");
const bool useShadow = CanRenderShadow(renderContext.View, light);
light.SetupLightData(&data.Light, useShadow);
light.SetShaderData(data.Light, useShadow);
data.Light.Color *= light.IndirectLightingIntensity;
data.LightShadowsStrength = 1.0f - light.ShadowsStrength;
context->UpdateCB(_cb0, &data);

View File

@@ -277,7 +277,7 @@ void LightPass::RenderLight(RenderContextBatch& renderContextBatch, GPUTextureVi
context->UnBindSR(5);
// Pack light properties buffer
light.SetupLightData(&perLight.Light, renderShadow);
light.SetShaderData(perLight.Light, renderShadow);
Matrix::Transpose(wvp, perLight.WVP);
if (useIES)
{
@@ -334,7 +334,7 @@ void LightPass::RenderLight(RenderContextBatch& renderContextBatch, GPUTextureVi
context->UnBindSR(5);
// Pack light properties buffer
light.SetupLightData(&perLight.Light, renderShadow);
light.SetShaderData(perLight.Light, renderShadow);
Matrix::Transpose(wvp, perLight.WVP);
if (useIES)
{
@@ -377,7 +377,7 @@ void LightPass::RenderLight(RenderContextBatch& renderContextBatch, GPUTextureVi
context->UnBindSR(5);
// Pack light properties buffer
light.SetupLightData(&perLight.Light, renderShadow);
light.SetShaderData(perLight.Light, renderShadow);
// Calculate lighting
context->UpdateCB(cb0, &perLight);
@@ -411,7 +411,7 @@ void LightPass::RenderLight(RenderContextBatch& renderContextBatch, GPUTextureVi
Matrix::Multiply(world, view.ViewProjection(), wvp);
// Pack light properties buffer
light.SetupLightData(&perLight.Light, false);
light.SetShaderData(perLight.Light, false);
Matrix::Transpose(wvp, perLight.WVP);
// Bind source image

View File

@@ -39,72 +39,73 @@ namespace
CriticalSection MemPoolLocker;
}
void RenderDirectionalLightData::SetupLightData(ShaderLightData* data, bool useShadow) const
void RenderDirectionalLightData::SetShaderData(ShaderLightData& data, bool useShadow) const
{
data->SpotAngles.X = -2.0f;
data->SpotAngles.Y = 1.0f;
data->SourceRadius = 0;
data->SourceLength = 0;
data->Color = Color;
data->MinRoughness = Math::Max(MinRoughness, MIN_ROUGHNESS);
data->Position = Float3::Zero;
data->CastShadows = useShadow ? 1.0f : 0.0f;
data->Direction = -Direction;
data->Radius = 0;
data->FalloffExponent = 0;
data->InverseSquared = 0;
data->RadiusInv = 0;
data.SpotAngles.X = -2.0f;
data.SpotAngles.Y = 1.0f;
data.SourceRadius = 0;
data.SourceLength = 0;
data.Color = Color;
data.MinRoughness = Math::Max(MinRoughness, MIN_ROUGHNESS);
data.Position = Float3::Zero;
data.CastShadows = useShadow ? 1.0f : 0.0f;
data.Direction = -Direction;
data.Radius = 0;
data.FalloffExponent = 0;
data.InverseSquared = 0;
data.RadiusInv = 0;
}
void RenderSpotLightData::SetupLightData(ShaderLightData* data, bool useShadow) const
void RenderSpotLightData::SetShaderData(ShaderLightData& data, bool useShadow) const
{
data->SpotAngles.X = CosOuterCone;
data->SpotAngles.Y = InvCosConeDifference;
data->SourceRadius = SourceRadius;
data->SourceLength = 0.0f;
data->Color = Color;
data->MinRoughness = Math::Max(MinRoughness, MIN_ROUGHNESS);
data->Position = Position;
data->CastShadows = useShadow ? 1.0f : 0.0f;
data->Direction = Direction;
data->Radius = Radius;
data->FalloffExponent = FallOffExponent;
data->InverseSquared = UseInverseSquaredFalloff ? 1.0f : 0.0f;
data->RadiusInv = 1.0f / Radius;
data.SpotAngles.X = CosOuterCone;
data.SpotAngles.Y = InvCosConeDifference;
data.SourceRadius = SourceRadius;
data.SourceLength = 0.0f;
data.Color = Color;
data.MinRoughness = Math::Max(MinRoughness, MIN_ROUGHNESS);
data.Position = Position;
data.CastShadows = useShadow ? 1.0f : 0.0f;
data.Direction = Direction;
data.Radius = Radius;
data.FalloffExponent = FallOffExponent;
data.InverseSquared = UseInverseSquaredFalloff ? 1.0f : 0.0f;
data.RadiusInv = 1.0f / Radius;
}
void RenderPointLightData::SetupLightData(ShaderLightData* data, bool useShadow) const
void RenderPointLightData::SetShaderData(ShaderLightData& data, bool useShadow) const
{
data->SpotAngles.X = -2.0f;
data->SpotAngles.Y = 1.0f;
data->SourceRadius = SourceRadius;
data->SourceLength = SourceLength;
data->Color = Color;
data->MinRoughness = Math::Max(MinRoughness, MIN_ROUGHNESS);
data->Position = Position;
data->CastShadows = useShadow ? 1.0f : 0.0f;
data->Direction = Direction;
data->Radius = Radius;
data->FalloffExponent = FallOffExponent;
data->InverseSquared = UseInverseSquaredFalloff ? 1.0f : 0.0f;
data->RadiusInv = 1.0f / Radius;
data.SpotAngles.X = -2.0f;
data.SpotAngles.Y = 1.0f;
data.SourceRadius = SourceRadius;
data.SourceLength = SourceLength;
data.Color = Color;
data.MinRoughness = Math::Max(MinRoughness, MIN_ROUGHNESS);
data.Position = Position;
data.CastShadows = useShadow ? 1.0f : 0.0f;
data.Direction = Direction;
data.Radius = Radius;
data.FalloffExponent = FallOffExponent;
data.InverseSquared = UseInverseSquaredFalloff ? 1.0f : 0.0f;
data.RadiusInv = 1.0f / Radius;
}
void RenderSkyLightData::SetupLightData(ShaderLightData* data, bool useShadow) const
void RenderSkyLightData::SetShaderData(ShaderLightData& data, bool useShadow) const
{
data->SpotAngles.X = AdditiveColor.X;
data->SpotAngles.Y = AdditiveColor.Y;
data->SourceRadius = AdditiveColor.Z;
data->SourceLength = Image ? Image->StreamingTexture()->TotalMipLevels() - 2.0f : 0.0f;
data->Color = Color;
data->MinRoughness = MIN_ROUGHNESS;
data->Position = Position;
data->CastShadows = useShadow ? 1.0f : 0.0f;
data->Direction = Float3::Forward;
data->Radius = Radius;
data->FalloffExponent = 0;
data->InverseSquared = 0;
data->RadiusInv = 1.0f / Radius;
data.SpotAngles.X = AdditiveColor.X;
data.SpotAngles.Y = AdditiveColor.Y;
data.SourceRadius = AdditiveColor.Z;
data.SourceLength = Image ? Image->StreamingTexture()->TotalMipLevels() - 2.0f : 0.0f;
data.Color = Color;
data.MinRoughness = MIN_ROUGHNESS;
data.Position = Position;
data.CastShadows = useShadow ? 1.0f : 0.0f;
data.Direction = Float3::Forward;
data.Radius = Radius;
data.FalloffExponent = 0;
data.InverseSquared = 0;
data.RadiusInv = 1.0f / Radius;
}
}
void* RendererAllocation::Allocate(uintptr size)

View File

@@ -61,7 +61,7 @@ struct RenderDirectionalLightData : RenderLightData
float Cascade3Spacing;
float Cascade4Spacing;
void SetupLightData(ShaderLightData* data, bool useShadow) const;
void SetShaderData(ShaderLightData& data, bool useShadow) const;
};
struct RenderSpotLightData : RenderLightData
@@ -79,7 +79,7 @@ struct RenderSpotLightData : RenderLightData
GPUTexture* IESTexture;
void SetupLightData(ShaderLightData* data, bool useShadow) const;
void SetShaderData(ShaderLightData& data, bool useShadow) const;
};
struct RenderPointLightData : RenderLightData
@@ -93,7 +93,7 @@ struct RenderPointLightData : RenderLightData
GPUTexture* IESTexture;
void SetupLightData(ShaderLightData* data, bool useShadow) const;
void SetShaderData(ShaderLightData& data, bool useShadow) const;
};
struct RenderSkyLightData : RenderLightData
@@ -103,7 +103,7 @@ struct RenderSkyLightData : RenderLightData
CubeTexture* Image;
void SetupLightData(ShaderLightData* data, bool useShadow) const;
void SetShaderData(ShaderLightData& data, bool useShadow) const;
};
struct RenderDecalData

View File

@@ -661,7 +661,7 @@ void ShadowsPass::RenderShadow(RenderContextBatch& renderContextBatch, RenderPoi
// Setup shader data
Data sperLight;
GBufferPass::SetInputs(view, sperLight.GBuffer);
light.SetupLightData(&sperLight.Light, true);
light.SetShaderData(sperLight.Light, true);
sperLight.LightShadow = shadowData.Constants;
Matrix::Transpose(view.ViewProjection(), sperLight.ViewProjectionMatrix);
sperLight.ContactShadowsDistance = light.ShadowsDistance;
@@ -739,7 +739,7 @@ void ShadowsPass::RenderShadow(RenderContextBatch& renderContextBatch, RenderSpo
// Setup shader data
Data sperLight;
GBufferPass::SetInputs(view, sperLight.GBuffer);
light.SetupLightData(&sperLight.Light, true);
light.SetShaderData(sperLight.Light, true);
sperLight.LightShadow = shadowData.Constants;
Matrix::Transpose(view.ViewProjection(), sperLight.ViewProjectionMatrix);
sperLight.ContactShadowsDistance = light.ShadowsDistance;
@@ -809,7 +809,7 @@ void ShadowsPass::RenderShadow(RenderContextBatch& renderContextBatch, RenderDir
Data sperLight;
auto& view = renderContext.View;
GBufferPass::SetInputs(view, sperLight.GBuffer);
light.SetupLightData(&sperLight.Light, true);
light.SetShaderData(sperLight.Light, true);
sperLight.LightShadow = shadowData.Constants;
Matrix::Transpose(view.ViewProjection(), sperLight.ViewProjectionMatrix);
sperLight.ContactShadowsDistance = light.ShadowsDistance;

View File

@@ -305,7 +305,7 @@ void VolumetricFogPass::RenderRadialLight(RenderContext& renderContext, GPUConte
perLight.LocalLightScatteringIntensity = light.VolumetricScatteringIntensity;
perLight.ViewSpaceBoundingSphere = Float4(viewSpaceLightBoundsOrigin, radius);
Matrix::Transpose(view.Projection, perLight.ViewToVolumeClip);
light.SetupLightData(&perLight.LocalLight, true);
light.SetShaderData(perLight.LocalLight, true);
perLight.LocalLightShadow = shadow;
// Upload data
@@ -366,7 +366,7 @@ void VolumetricFogPass::RenderRadialLight(RenderContext& renderContext, GPUConte
perLight.LocalLightScatteringIntensity = light.VolumetricScatteringIntensity;
perLight.ViewSpaceBoundingSphere = Float4(viewSpaceLightBoundsOrigin, radius);
Matrix::Transpose(renderContext.View.Projection, perLight.ViewToVolumeClip);
light.SetupLightData(&perLight.LocalLight, withShadow);
light.SetShaderData(perLight.LocalLight, withShadow);
// Upload data
context->UpdateCB(cb1, &perLight);
@@ -442,7 +442,7 @@ void VolumetricFogPass::Render(RenderContext& renderContext)
{
const auto shadowPass = ShadowsPass::Instance();
const bool useShadow = dirLight.CastVolumetricShadow && shadowPass->LastDirLightIndex == dirLightIndex;
dirLight.SetupLightData(&_cache.Data.DirectionalLight, useShadow);
dirLight.SetShaderData(_cache.Data.DirectionalLight, useShadow);
_cache.Data.DirectionalLight.Color *= brightness;
if (useShadow)
{