No ambient light and reflections on launch

Hi!
Here is my situation:

  1. Big archvis exterior scene, for walking around with Oculus.(Works fine)

  2. Lots of sublevels containing static meshes (every building is a sublevel, disappears on leaving volume, leaving a lowpoly mesh with unlit material in its place).

  3. No terrain, static mesh tiles as ground, lots of grass painted on ground tiles (from Kite Demo as a placeholder)

  4. Dynamic light. Mesh distance fields(disabled on screenshots attached, though). Single light source (sun+sky) Light source is on persistent level, reflection captures on sublevels.

  5. Lots of reflecting surfaces.

Static light appears impossible - it can’t be built with so many foliage (even if I disable static shadows for instances). It just goes on forever and ever, and then crashes. Static light without grass builds, but looks bad, because I had to cut corners and don’t have enough horsepower to build it right.

All of it works fine in viewport, runs smoothly. Before I completely switched on dynamic light and mesh distance fields, it worked just fine on launch too.

I haven’t tested launching for long, and to my big surprise, it now looks like this(see attachment. No ambient, looks horrible Second attachment - how it looks in viewport).

Searching for answer, I learned, that Reflection Captures do not work with dynamic light. So I deleted them. No difference. Same with adding “Recapture Sky” into level Blueprint on startup. Nothing.

At some point before, I encountered a problem with streaming poolsize, and I fixed it with command r.Streaming.PoolSize=2000 in defaultengine.ini

But on launch I’m getting this: “Console variable ‘r.Streaming.PoolSize’ wasn’t set (‘Scalability’ has a lower priority than ‘ProjectSetting’)”. Scalability is set to Epic.

Log seems ok besides that line about pool size. No relevant warnings. Collision mesh issues mostly, and some problems with imposter sprite materials.
So. what’s going on, and how do I fix this mess?
I need a smooth-running exterior map with lots of foliage and reflecting surfaces, but don’t have enough power or time to build light. Map is far from being complete, there is yet a lot of content to import, so I need to solve this problem as soon as possible. I’m clearly doing something wrong here, but I can’t find anything relevant to my problem on answerhub or forums.

I think, I found an answer for this myself. I discovered, that reflection captures MUST NOT be placed in the streaming sublevels. They just break rendering, permanently.

Only by completely purging whole level stream system, rebuilding it anew, deleting reflection captures and putting new ones on persistent level I managed to fix it. And I couldnt just move captures to the persistent level - I got errors, that actors can’t be moved because of incorrect flags. No idea what flags exactly, so I just deleted them.

Anyway, now everything is working okay, but I’m not getting my hopes up, maybe something else related to this will emerge.

For example, a problem with RT buffer. When I place around 100 captures (and I can’t see how I can reduce this number more than I did already, considering the size of my map), I’m getting a warning, that buffer is exceeded 400mb, and it’s bad - fps drops considerably. When testing playing in viewport, I managed to reduce buffer load by placing captures to sublevels. In viewport everything worked just fine.

It’s really sad it can’t be that way in standalone game. It’d really make everything much simpler.

Um. Previous comment was a bit misleading.

Further debugging showed, that reflection captures in sublevels are kinda fine, but… Here is the most obvious thing I never even tried to see: There should be a common preloading Level Streaming Volume around player start. I’m still not completely sure why all of this happening, but that how it works:

If you launch your game with level streaming, and see dark shadows and zero reflections - place a level streaming volume around player start and include it into streaming volume list for ALL of your sublevels. It might help.

I guess, problem solved.