Ambient Cubemap


We can already load a cubemap in PPV but there are 2 problems with this.

1. When we load a cube map into PPV’s Ambient slot it’s applied to the whole world, but we need it to work locally i.e outside and inside of the house need two different cube maps applied. And if we scale down the PPV radius and use many other PPVs throughout the level for the cube map to be applied locally it is very inefficient since we only need the Cube Map part of the whole PPV for this purpose. So we’d rather need to have an Ambient Cubemap entity that we can place around precisely like we do with Reflection Capture Spheres.
2. The ambient cubemap entity should generate a low res cube map of the environment it’s placed in so when it’s projecting that on the environment it’ll look very consistent.

I’d like to show how it’s done in Cryengine.

First an environment probe is placed locally (tens or hundreds of it throughout a game level like in Crysis 2/3).

Then when the user wants it generates a cube map based on the settings defined by the user. (The resolution is usually very low res since we don’t need details on the cubemap).

But in UE4 using tens or hundreds of PPVs just for the sake of loading different Cubemap isn’t appreciated by many on top of receiving an unnecessary performance hit, And also having to generate the cubemap with some manual process is too tedious and counter productive when dealing with so many of these. So this would be a worlds better if you could help us there by implementing/improving this cube map feature.

Thank you!

this is already in ue 4 called reflection spheres :

Reflection captures work differently than the Ambient Cubemap that’s located in Post Process Volume. Give it a try.

What about just placing several post processing volumes with corresponding sizes ?

That’s sort of not very efficient since each PPV has it’s own cost from what I understand. I could be wrong. Other than that, once you place a hundred of those and then need a key change in PPV settings you’d have to go through every one of them to change that setting which is very counter productive.

Edit: Also PPV doesn’t generate a cubemap of the environment it’s placed in. Doing this on our own is time consuming. If it could be automated like “Update capture” in skylight or reflection captures that’d be of great help.

I’d expect post processing volumes to blend only items, that actually change from volume to volume, so I’d expect the cost to be not much different, but that is just a guess. I did not check it and to my entire shame did not work with PP volumes enough.
What I mean that in theory you should be able to place one large master post process volume, where you define all the settings, and then several smaller post processing volumes inside, where only ambient cubemap is ticked. You would need to crank up priority on these small volumes. Correct me if I am wrong.

Probably can be done with a blueprint.

The problem with priority is if you raise the priority of a child PPV it overwrites the entire settings of the master PPV. So can’t just use the cubemap part alone.
How it was handled in cry was that we placed one cubemap with a 100,000 radius, this would be applied to the whole level, then we placed local ones, these would replace the global one and once you step out of the radius of a local probe, you’d see the master probe effect. Unfortunately since PPV has a lot of settings other than cubemap, once you step in radius of a local PPV all settings are read from this one and master PPV is ignored. Hence an Ambient Cubemap entity like ref capture spheres would be very handy.

Are you completely sure about this ?

Yes. Tested again right now. All settings are read from the PPV with higher priority, so you can’t localize PPVs inside a giant PPV to get the Ambient Cubemap from them only and get the rest of the settings from the giant PPV.

Uncheck everything but the ambient cubemap in the small one and check everything in the big one. I just checked, with a giant PPV with a dark exposure setting, and a small one with a cubemap but nothing in exposure checked, I got both the cube map and the exposure to apply at once.