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();
}
NA
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-268302 in the post.
0 |
Component | UE - Graphics Features |
---|---|
Affects Versions | 5.5.4 |
Target Fix | 5.6 |
Fix Commit | 39511207 |
---|
Created | Apr 8, 2025 |
---|---|
Resolved | Apr 10, 2025 |
Updated | Apr 10, 2025 |