Description

When a reflection capture is unloaded due to streaming, it cannot be reloaded when the player returns to that area in the world because FReflectionCaptureData::OnDataUploadedToGPUFinal deletes the CPU-side data and does not allow it to be re-uploaded to the GPU anymore to save memory.

One workaround is to reload/restart the level, or comment out the call to OnDataUploadedToGPUFinal, which will increase memory usage because it prevents the CPU side data from being unloaded.

Steps to Reproduce
  1. Download the sample project in the Additional Info URL.  The project has a level with 2 reflection captures that are far apart and a level blueprint that binds keyboard inputs 1 and 2 so you can quickly teleport between the reflection capture locations.
  2. Run the game client (issue does not repro in editor)
  3. Press 1 to teleport away from the spawn
  4. Press 3 to run garbage collection so you don't have to wait for streaming to unload unreachable objects at the spawn
  5. Press 2 to return to the spawn area

Expected

The ReflectionCapture data at the spawn still shows up in reflections

Actual

The ReflectionCapture data no longer appears in reflections because it was unloaded and will not reload.  The possible cause is that in the game client, FReflectionCaptureData::OnDataUploadedToGPUFinal deletes the CPU-side data and does not allow it to be re-uploaded to the GPU anymore.

 

The same issue will happen with the second reflection capture if world streaming causes it to unload while the player is at the spawn.

Have Comments or More Details?

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

0
Login to Vote

Unresolved
ComponentUE - Graphics Features
Affects Versions5.45.4.3
Target Fix5.6
CreatedJul 19, 2024
UpdatedJul 23, 2024
View Jira Issue