[Dynamic GI in UE4] Unity 5 Free with Enlighten

I’ve been hoping for some time for a workable real-time GI solution that would be usable for VR (LPV doesn’t work well for interiors, and not at all for VR). I’m not sure that the new Unity 5 tools will do that with decent performance or not, but I’ll be testing. They pretty much dropped a bomb, and I must reiterate that real-time GI is a HUGE feature for visual-fidelity fanatics. I hope Epic can step up on this and introduce their own solution.

Not more than a few months ago, Geomatics showed a video of Enlighten working in Unreal Engine. But since then, no further info. Might we see a plugin for UE4 soon? Ever?

Enlighten has a plugin for UE4, but because the engine’s source is available to us, commercial third party plugins cannot be use by us out-of-the-box, like with Speedtree and Simplygon in UDK for example. Unity doesn’t have its source code available, unless you pay a significant fee to compensate for these plugins.

Dynamic GI is coming to Unreal, and nVidia’s VXGI is also available for UE4 for free.

See here:

I’m aware of Unreal working on DistanceField GI… but that is only one bounce, and to my knowledge, has no timeframe. I would love to use specifically the Enlighten solution, since it does exist… somewhere;)

Thanks for the pointer on VXGI. I wasn’t aware there was an integration I could download. I’ll have to take a look at that!

No worries :slight_smile:

I’m fairly certain that Enlighten is one bounce. Enlighten DOES have a UE4 integration, but you have to pay big money for it. As Unreal has gone all open-source, it would require Enlighten to dish out their source code too, and Enlighten aren’t prepared to offer an integration free to UE4 users.

Let’s face it though, VGXI is the balls if you’ve got the hardware for it :smiley:

Its still not opensource :stuck_out_tongue:

Enlighten and the other middle ware provider could do with libraries/import libraries, like the available integrations do. They choose not to do it, its not a limitation on our side if the table (apart from deals Epic could make).

I guess I don’t fully understand. Can a 3rd party not sell a closed-source plugin due to UE4 being open-source?

So was reading through several threads about dynamic GI here on the forums. Just one general question for the gurus. I´ve seen a demonstration of imperfect shadow mapping back in 2008.
The result is stunning, but it looks like it was never implemented into a realtime engine. Well maybe the name changed. But I wonder… why ?

They can, but they have to do it off of their own backs like SpeedTree and Algorithmic (Substance Designer) do. Enlighten is the same, it’s just cray-expensive last time I looked at it and you have to send off an application of some kind. Anything built directly into and shipped with the Engine has to be open-source now.

Ok, that makes sense. Thanks.

As for Geomatics/Enlighten… they, like any other tech company has to evaluate whether large numbers at a lower price vs small numbers at a higher price make sense. In the case of Unity, I’m sure Unity paid a good deal to Geomatics to incorporate the tech… but on a per-user basis, the price is the average of 0 and whatever number of actual licenses they sell for pro users. That’s probably not a lot of money in Geomatics’ pockets per Unity user. I can see a reasonably-priced UE4 plugin doing nice business. I keep hearing it’s crazy-expensive… but I haven’t heard what that price IS. I have some money to throw at good lighting. What’s the deal? It’s time to come out of secrecy, and charge me for it! If anyone knows who to contact for current pricing, please let me know, as they have zero contact info on their site.

]
I’m aware of Unreal working on DistanceField GI… but that is only one bounce, and to my knowledge, has no timeframe. I would love to use specifically the Enlighten solution, since it does exist… somewhere;)

Thanks for the pointer on VXGI. I wasn’t aware there was an integration I could download. I’ll have to take a look at that!

[/QUOTE]

Be aware that VXGI is also limited to one bounce.

]
I’m aware of Unreal working on DistanceField GI… but that is only one bounce, and to my knowledge, has no timeframe. I would love to use specifically the Enlighten solution, since it does exist… somewhere;)

Thanks for the pointer on VXGI. I wasn’t aware there was an integration I could download. I’ll have to take a look at that!

[/QUOTE]

I’ve tried the Enlighten solution in unity - was not impressed at all. Its a half-baked solution. The only difference between it and a fully baked solution is that you can move a light around and get the gi effect. If you change a material color, it has to be re-baked again.

VXGI on the other hand is fully dynamic and is efficient because it uses view-dependent cascaded 3D textures, where color is directly written and directly read from these textures. Multiple bounces (effectively unlimited) can be incorporated easily by an extra cone tracing pass within the voxelization shader. Sure you need a top graphics card to run it - but it can also be scaled very well by lowering voxel resolution, reducing number of cones - the quality loss is not significantly noticeable for diffuse (i have been able to run my own implementation of voxel cone tracing gi on a gtx485m laptop).

Just to point out, Unreal is not open-source, as Epic charge a royalty fee for commercial use of the engine. Semantics, I know.

Unfortuantely I think a lot of people are confusing Enlighten for a fully dynamic solution, because that’s how they advertise it - but there is baking involved. It’s not like DFAO / DFGI which run in realtime (minus the computation of the distance fields).

VXGI looks like a great solution in theory, but since it’s going to be artificially limited to high-end Nvidia cards I don’t see it being of any use for games. You’re having to manage an entire lighting solution / pipeline which can’t run on either console and well over half of PC users.

ive always regretted buying a ps4.

http://www.dualshockers.com/2014/09/03/ps4-exclusive-the-tomorrow-children-shows-its-amazing-lighting-technology-with-new-wip-screenshots/

I’ve been fiddling with Unity five for the past couple of days. And Enlighten is just plain incredible, awesome, unbelievable even. Especially at higher settings. It takes a fair bit of time to precalculate, but so worth it. Why I, personally, would really-really like to have a similar solutions in UE is not just because of the in-game dynamic lighting options, but because how quickly you can iterate on your lighting, even if you decide to bake it in the end. In Unity you can now get the lighting just right and then simply bake the final result to a traditional lightmap with your preferred settings, without the need to adjust-bake-adjust-bake, trying desperately to get the final result just right. No amount of preview-quality baking in UE can substitute that. I like UE a lot, but this eats a lot of time in my workflow, time which could be more artistic becomes drudgery of endless waiting cycles.
P.S. There is a Unity arch-viz-like video on youtube which can make anyone a believer - http://www.youtube.com/watch?v=Fr4H0crCb0E.

I downloaded the U3D5 PLE yesterday and had a go with it. Wasn’t exactly blown away. The dynamic indirect only works on static objects, which is nice, but not really that impressive. Having it work with fully dynamic scenes however would be much more impressive - and it seems like the Subway demo Geometrics posted on their YouTube channel covers that - and in the massively more workflow-friendly Unreal Editor…

The subway demo is also mostly static geometry. I believe Unreal’s own good-old irradiance cache is used for dynamic objects (like the rocks in the demo)(even if it’s not the irradiance cache, the lighting on the rocks looks considerably worse than on the precalculated static geo). AFAIK any Enlighten integration requires precalculation for static objects, no matter which integration/engine.

P.S. If anyone could direct me to how and where to download VXGI for Unreal, I’d be most appreciative. (EDIT!: Apprently, through GitHub. Oh well.)

I am interested in this as well.

For VXGI:

Follow these steps, but instead of Flex use VXGI (it’s the same process).
When executing setup.bat (or .sh/.command) select “No” when it asks to overwrite your changed files (the Nvidia branch comes with an own nvapi as far as I remember it).

Greetings,
Dakraid

Enlighten requires static geometry, anything that is spawned at runtime cannot influence the GI, and if you delete any static geometry during runtime, it will continue to participate in GI. In time, Unity could add some limited runtime modification, but fundamentally, Enlighten requires static geometry, so any changes or movements during runtime would have to be precomputed as well. Unity uses it as a baking/preview tool and a sort of hybrid DGI, and that suits it very well.

DFGI and LPV are true dynamic solutions. Good or bad, they work with any geometry thrown at them, static or not doesn’t really matter to them. I’m not sure about how VXGI goes about this, but it is supposed to be more dynamic than SVOGI, maybe someone can chime in about how it works with runtime generated geometry?
[/QUOTE]

VXGI uses cascaded 3d textures (as voxel structures), where color values are directly written to and the textures are directly read in a forward shader by cone tracing. This makes it about a magnitude faster than SVOGI because it doesn’t need to do any complicated octree traversals (which was very expensive). Now voxelization is the fastest part of the algorithm and from my own tests, is comparatively negligible.

The cascades are just different LOD 3D textures, in VXGI, these are view dependent so immediately surrounding the viewer and the direction of view, the most hi-res 3D texture is used, then cascaded over it is a series of larger lower-res 3D textures, which allows for objects further away to still receive GI, but at a lesser detail. This is almost exactly the same technology as that used in the Tomorrow Children (except they don’t use view-dependency because it does produce artifacts).

It is fully dynamic - when you add geometry to the scene, its color values immediately overwrite the original color values in that space in the voxel textures - so you can use textures that have all sorts of colors, which will be captured in detail in the voxel textures. You can have a texture that has a pattern of thin lines as a different color, then set that as emissive to get detailed emissive lighting.