Description

The 'VolumeBounds' array in FTranslucentLightInjectionCollector::AddLightForInjection is accessed as a pointer instead of with 'VolumeCascadeIndex' and thus fails bounds checks for the outer volume.

Below is a proposed fix.

FVolumeBounds VolumeBounds[TVC_MAX];
bool bAnyBoundsValid = false;
for (uint32 VolumeCascadeIndex = 0; VolumeCascadeIndex < TVC_MAX; ++VolumeCascadeIndex)
{
    VolumeBounds[VolumeCascadeIndex] = CalculateLightVolumeBounds(LightSceneInfo.Proxy->GetBoundingSphere(), View, VolumeCascadeIndex, LightType == LightType_Directional);
    //bAnyBoundsValid = bAnyBoundsValid || VolumeBounds->IsValid();
    bAnyBoundsValid = bAnyBoundsValid || VolumeBounds[VolumeCascadeIndex].IsValid();
}

Steps to Reproduce

NA

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-268302 in the post.

0
Login to Vote

Fixed
ComponentUE - Graphics Features
Affects Versions5.5.4
Target Fix5.6
Fix Commit39511207
CreatedApr 8, 2025
ResolvedApr 10, 2025
UpdatedApr 10, 2025
View Jira Issue