fix distance falloff misassignmen. fix uninitialized attenuation in root probes

This commit is contained in:
AzaezelX 2025-01-07 23:48:34 -06:00
parent 5a2ec2731f
commit a4266a1336
5 changed files with 5 additions and 5 deletions

View file

@ -78,7 +78,6 @@ BoxEnvironmentProbe::BoxEnvironmentProbe() : ReflectionProbe()
{ {
mCaptureMask = REFLECTION_PROBE_CAPTURE_TYPEMASK; mCaptureMask = REFLECTION_PROBE_CAPTURE_TYPEMASK;
mProbeShapeType = ProbeInfo::Box; mProbeShapeType = ProbeInfo::Box;
mAtten = 0.0;
} }
BoxEnvironmentProbe::~BoxEnvironmentProbe() BoxEnvironmentProbe::~BoxEnvironmentProbe()

View file

@ -133,6 +133,7 @@ ReflectionProbe::ReflectionProbe()
mCaptureMask = REFLECTION_PROBE_CAPTURE_TYPEMASK; mCaptureMask = REFLECTION_PROBE_CAPTURE_TYPEMASK;
mCanDamp = false; mCanDamp = false;
mAtten = 0.0f;
} }
ReflectionProbe::~ReflectionProbe() ReflectionProbe::~ReflectionProbe()

View file

@ -349,7 +349,7 @@ vec4 compute4Lights( Surface surface,
} }
//Probe IBL stuff //Probe IBL stuff
float defineSphereSpaceInfluence(vec3 wsPosition, vec3 wsProbePosition, float radius) float defineSphereSpaceInfluence(vec3 wsPosition, vec3 wsProbePosition, float radius, float atten)
{ {
float3 L = (wsProbePosition.xyz - wsPosition); float3 L = (wsProbePosition.xyz - wsPosition);
float innerRadius = radius-(radius*atten); float innerRadius = radius-(radius*atten);

View file

@ -94,7 +94,7 @@ void main()
} }
else if (probeConfigData[i].r == 1) //sphere else if (probeConfigData[i].r == 1) //sphere
{ {
contribution[i] = defineSphereSpaceInfluence(surface.P, probePosArray[i].xyz, probeConfigData[i].g, probeConfigData[i].b*atten); contribution[i] = defineSphereSpaceInfluence(surface.P, probePosArray[i].xyz, probeConfigData[i].g, probeConfigData[i].b)*atten;
} }
if (contribution[i]>0.0) if (contribution[i]>0.0)

View file

@ -88,7 +88,7 @@ float4 main(PFXVertToPix IN) : SV_TARGET
} }
else if (probeConfigData[i].r == 1) //sphere else if (probeConfigData[i].r == 1) //sphere
{ {
contribution[i] = defineSphereSpaceInfluence(surface.P, probePosArray[i].xyz, probeConfigData[i].g, probeConfigData[i].b*atten); contribution[i] = defineSphereSpaceInfluence(surface.P, probePosArray[i].xyz, probeConfigData[i].g, probeConfigData[i].b)*atten;
} }
if (contribution[i]>0.0) if (contribution[i]>0.0)