I just was reading the docs about realtime global illumination and searched through google and forum about various techniques, but I am stil confused now.
So what is currently the best way to add realtime GI to a scene? Is that still ‘light prop. volume’? Which one has to enable first through the INI file? (sounds like it is not really recommand to use it)
Are there any other techniques?
best regards T
ps: i am not looking for the baking version, I really would love to see the realtime version.
There is no current best way cause there is only 1 option, which is 2000 year old LPV’s. Rumors have it even the Egyptians used it when creating the grande Pyramids.
Yes you need to enable it via .ini because it’s so deprecated, Epic never dared enabling it by default.
There’s also VXGI by NVIDIA which is newer but more expensive and requires a separate version of the engine.
This probably didn’t help at all.
If you want a better answer, search around a bit.
There’s many many topics with extensive discussions and useful stuff on your question.
The only official solutions are LPV, which is what you mentioned, DFGI (Distance Field Global Illumination, a GI solution piggy-backing on DFAO), HFGI (Heightfield Global Illumination, similar to DFGI but is intended for landscapes as landscapes don’t produce a distance field representation of themselves), Lightmass GI (baked global illumination, can be done through static or stationary lights), or VXGI in the GameWorks branch.
Lightmass GI is the cheapest and arguably the best looking, but it’s static, VXGI is the best dynamic solution but is expensive, DFGI and HFGI are both pretty good WIP solutions and LPV is about the cheapest and lowest quality solution.
As Chesire pointed out, really depends on the context. Logically, I’d imagine that the cost of VXGI increases as scene complexity increases, due to voxelisation being more complicated to solve. Pascal may improve performance, but I’d imagine VXGI would still remain a feature primarily for high-end cards.
I can’t really comment on exactly when VXGI (which to me seems like the most promising realtime GI-solution available atm) will be viable to use, but I think it’ll be 1-2 more graphics cards generations until you can use it freely in big scenes, since it’s quite a resource hog. My (admittely very limited) tests show that my framerate (Titan X with a i7-5720 CPU and 48Gb memory) drops by about 40 fps when enabling VXGI. My tests were done on UE4.10, and some things might have changed since then.
I would think that VXGI would run smoothly on the next generation of Titan, but that’s a very expensive card, so you’d probably have to wait one more generation in order to use it on midrange hardware.
With VXGI (and just about any scalable Real-Time option I reckon) it matters a lot ofc. what you need it for. If you are content with LPV-ish quality, it can handle that with ease on mid-range GPU’s already. If you want it to just render pretty images/sequences, you could upscale just for that part while having lower quality in-editor. Thing with these type of advices is they don’t mean much. Yes hardware will always become better but so will pipeline demands. In one or two generations it will indeed be true that for current stuff it will be faster, just as it will most likely be true that it will be equally slow for what’s considered Next-Gen by then.
very interesting read here!
So far, if I am correct, there is in fact only LPV that is really ready to use in Unreal. Just mark the INI file and ready to go. VXGI sounds super promising, but in terms of performance, let’s wait for hardware to be ready for this?
I have seen Enlighten, too. I thought it was a realtime solution. But also indeed not cheap. I believe, Unity comes with Enlighten, and they call it realtime…I have test that, but it still requires hitting a bake button.
Personally, I am not a very technical guy. Every other solution that requires downloading the real UE4 branch and compile is a no-touch for me. @Chesire, very interesting blog, there are pics over there, that looks absolutely stunning! Do you have a quick & dirt setup tutorial with VXGI?
LPV and DFGI / HFGI are the only “working” solutions, DFGI / HFGI being the better of the two. VXGI works, very well, but requires a high-end graphics card, at least a 970, to get decent performance in a simple scene. Enlighten is “real-time” in that you have to bake the assets for them to work with Enlighten, but once that’s done lighting is dynamic. AHR is the best solution IMO producing GI rivaling VXGI as well as very, very good specular reflections, but is on a custom source branch and has it’s own bugs.
UE4 is still all about baked lighting so resources invested in a more dynamic path are very limited, if any. RyanB did some promising work on DFGI but it was shelved quite a while ago already. There hasn’t been any news on a more robust system ever since. It’s a sad state cause where we are now stuck with Crytek’s LPV, CryEngine itself has long since ditched this tech and moved on to SVOGI, which very ironically, was also tested by Epic but deemed too resource heavy to implement (taking some shortcuts here but that’s the gist of things). Maybe stuff is ‘cooking’ out of sight. I doubt it but we can always hope.
Mind you, even the current implementation of UE4 LPV is still inferior to that of Crytek as, even with several updates from Lionhead Studios (now in trouble), it still doesn’t have cascades, which is quite a nice-to-have if you don’t want to see very visible limitations of that system.
As for VXGI and all the current non-default stuff out there; Yeah, stay away if you need it for production. Branching from the main engine is usually a dead-sentence for serious development. If you’re into experimenting, sure, go ahead. There isn’t really a quick and dirty VXGI manual. Setting things up is fairly straightforward. Tweaking for optimal results however is not. Time and practise…as always.
Sadder thing is that SVOGI as cryengine has it is not resource heavy and is pretty performance friendly. Example games are miscreated and kingdom come. You can even download CEV and test the performance in the example level and it holds up really well. So it was probably just not integrated very well in UE4 and then ignored straight up without any further improvements on it like crytek did. Now they have a real time GI solution that does fantastic work and runs really smooth.
Crytek has always been at the front when considering cutting edge real-time tech (which -unfortunately for them- is also the single thing they do really well imo) but it sure would be very interesting to see how the managed to implement things. There’s the probelight system complementing SVOGI (and SSDO which they somehow tied into it as well) etc. but how did they manage to re-voxelize a entire level in what, 20 seconds tops or so? Amazing achievement. And the looks…Aaaaargh.