Description

SphereReflectionCaptures are not properly destroyed when deleted, and still take up space in the AllocatedReflectionCaptureState array. After reaching 341 SphereReflectionCaptures, the only way to clear out the data is to restart the editor after deleting to get under the limit and saving.

Found in 4.20 CL# 4369336, 4.21 CL# 4613538, and 4.22 CL# 4647581

 

Edit DanielW:

I looked into it briefly.  UReflectionCaptureComponent::BeginDestroy() will free the capture's storage.  The problem is that the editor does not destroy a deleted actor at all.  ChrisG suggested using OnUnregister() to free the capture's storage instead, which should work.  
 

Steps to Reproduce
  1. Open attached project
  2. Build reflection captures
  3. Delete the sphere reflections captures from the scene then place a new one
  4. Build reflections again

Results:
Unable to build reflection for new the SphereReflectionCaptures after reaching maximum SphereReflectionCaptures, even after deleting old ones.

Expected:
When deleting SphereReflectionCaptures, they should be removed from the cubemap reserveration arrays without needing an editor restart.

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-67459 in the post.

16
Login to Vote

Unresolved
ComponentRendering
Affects Versions4.204.214.22
Target Fix4.26
CreatedDec 11, 2018
UpdatedFeb 27, 2020