Localized-IBL implementation

ray tracing is almost useless for global illumination …
there is not enough power even for top-end video cards, while medium-sized player configurations will not be enough.
you can not even think about it in the coming years (5-10).
I think for ray tracing there will be more intellectual applications than letting beams in all directions and counting every rebound for light…

I’ve never tried this but I doubt probes have any loading/unloading capabilities

it’s actually happening already. just look up UE4 RTGI and you’ll see what’s already possible.
but I agree from “what’s just now possible on high end hardware” until “technology is mature and the majority of users have adopted it” we are still quite some years away

I tried now, it seems to work. Reflection captures data is stored in the same “BuilrData” uasset file as the lightmaps, and the light scenarios basically are mede to load a “builtdata” to a level. So, I created 2 light scenarios for my Japanese rooms and just put a capture in each. One capture has an offset and the brightness different from the other. And it looks like on screenshots (1 is without light scenarios, 2 and 3 is with different scenarios enabled.) It’s very easy to setup, you can try that yourself.

Well that’s frigging aggravating. Volumetric lightmaps are **not a solution as long as they don’t work with level streaming. **I can’t believe the person who rejected that is so unfamiliar with the engine they don’t get that.

Right now now there’s a huge gulf in UE4s lighting when it comes to interiors that aren’t fully static or fully dynamic (which look poor), and they keep refusing to implement anything to get a decent middle ground like other engines have been using since last generation like local, controllable IBLs. You either go all static with dense lightmaps where nothing can move (unless it looks like a Scooby Doo prop that sticks out where the lighting doesn’t match well because level streaming forces you to use the old UE3 style dynamic ambient lighting tech) or your project has to run on space hardware from the future for fully raytraced lighting that can’t run on modern consoles or the bulk of Steam users’ mid range PCs.

This solution or if they bothered to support volumetric lightmaps to implement level streaming would have filled in that middle ground between fully dynamic and fully static to be in line with other engines, but I guess they stubbornly don’t want anyone targeting that spec without investing in rewriting parts of the engine in a new branch.

God this is stupid and frustrating.

I guess on the upside, even if they aren’t going to implement it as an official engine feature you can always use 's branch instead.

Wow, that really really sucks. I wish you could appeal a pull request. I really was expecting this to be accepted.

Any level where it’s not feasible to have any baked lighting, but which has interiors/non-broad-daylight areas, could have benefited hugely from this. Volumetric lightmaps have nothing to do with anything! Plus, volumetric lightmaps don’t work with level streaming!

Just tried SSGI in the dev-rendering branch here.
SSGI provide an awesome AO and screen-space indirect diffuse effect. But it still failed at the interior case sometimes.
If we can have a fallback to IBL diffuse when SSGI indirect diffuse failed, it will just like a dream come true.

This also applies to big landscape scenes. Everyone knows lightmass will c-rap itself above a certain landscape size, and the runtime memory cost is also huge.

So I really don’t get how Volumetric Lightmaps help with anything except a small landscape with no foliage and no grass (basically no use case out there)

Awesome. Please provide some screenshots for SSGI… I’d really like to see it.

I see I’m not the only one who didn’t understood their answer. Being a noob I hoped there is some hidden checkbox somewhere :slight_smile:

I’m wondering if the IBL can be packed as as plugin?

@ do you plan to make 4.22 version?

no. the changes I made to the engine are completely wired into the rendering, which isn’t in any way extensible as a plugin

yes I am. I already got it working locally and it was easy. Then I got caught up with trying to improve it by adding shadow/occlusion, and other real life stuff came in so I left it aside for a bit.
I could update the 4.22 as it is with the same features, but mostly it’s just that updating the branch (rebasing it to the latest, etc) is just really time-consuming and I haven’t got around to do it yet

Is this new “render graph” thingie can help in cases like this one? (btw, i have no idea what it is, just remembered reading somewhere you could have modular rendering pipeline with it or something)

Great, I will beta test it when it’s released :slight_smile:

AO probe?Great idea!
I must admit that at some point I also dream of applying the principle of SSGI to the cubemap.

Force reflection captures to use fully rough material. Done all in the base pass.
https://github.com/EpicGames/UnrealEngine/commit/af569c3471efbf8de904304b9a333d5a3fd5b566

These changes might be useful for your implementation.

I don’t think the new render graph is making the rendering pipeline more modular in a way that can be plugin’d, at least not yet.
I hear Unity is great at this btw.

yeah would be nice

yep, that’s part of my code since some time ago, thanks :slight_smile:

but now I see the code was changed by Epic. but well, since they integrated your PR I can stick to this code until they merge it, then eventually (4.23 maybe) I’ll get the conflict and update to the new function.

Epic change also optimized reflection capture rendering by bit because it now skips applying reflection captures when rendering reflection captures.

Any chance you’ve already found a way to store/read scene depth information from reflection captures? This seems like something that could open up a huge number of interesting possibilities.

I did already. what kind of interesting possibilities? :slight_smile:

alright the 4.22 version is live: https://github.com//UnrealEngine/tree/4.22

at this point it contains no further improvements, those might come later

Great! Downloading.
We just made a demo with those Japanese rooms I used for testing, so I plan to rebuild it with your mod and see what it does “out of the box” :slight_smile:
Then if it looks good I’ll try to see if “time of day” can be supported somehow (light scenario maybe)