Global Illumination alternatives

I found some information from Cyril Crassin on Voxel Cone Tracing today that looks interesting.

http://www.icare3d.org/research-cat/publications/interactive-indirect-illumination-using-voxel-cone-tracing.html

Enligthen in Unity 5https://youtube.com/watch?v=NqyTT0rQW1M
Bit unrelated but I must say it looks spectacular.

Saw that and talked with the guy, he had a lot of problems with the screenspace reflections and making sure everything was set up right, but the end results do look pretty good.

A new rendering card has been added “Raytraced directional light soft shadows using distance fields”. What does it even mean? lol Either way I’m happy we are seeing more dynamic lighting stuff being worked on(assuming its dynamic).

Fascinating idea, recalculted distance fields for skinned characters I hope. Was thinking about how to do this in realtime, most interio lights have results too soft for PCF, and sampling problems are introduced with naive shadow mapping. Was thinking of edge importance sampled depth peeling stored in an MSAA target, but distanced fields would be an interesting idea, even if only for static geometry.

More information soon (we haven’t even announced that in the Engine news yet =)

Just to whet your appetite (note the sharp contact shadows and soft distant shadows)

Nice! Is this going to have the same requirements as DFAO for meshes or is it going to work regardless of the scale, open faces, etc. of meshes? And i hope this wont crash like DFAO does, otherwise it will be another sad update for me. :\

Wow that’s beautiful! I’d always wanted that type of shadow!Are they dynamic?! With that said I would love to use DFAO but it has some limitation(i.e. building has to be same size). Will those limitation be addressed in the future?

Hey ,

sorry for such a late reply! Man, thats one of the most “epic” (höhö^^) answers I ever got! Thank you a lot. That helped me quite abit and threw up some interesting ideas which I already passed over into our coder dungeon^^ Sadly, I dont see us implementing any custom stuff (at least at this complexity level) anymore, since we dont have that much time left. So we will probably stick to what we have and make small improvements to just make it work better for our specific needs. But still, very inspiring for future stuff!

Thanks again for this detailed answer and cheers!

Edit: Is there a way to exclude meshes from the DFAO calculation? Would be very neat to tell all the grass meshes for example to just not use it/affect it. That would also help with the performance I guess

One last random thought, probably blog this elsewhere, in fact I’ll do that now! For each cubemap, store albedo depth and normal (compacted to two channels for normal and albedo, quality not that important) then with originating camera position you’ve got all you need to relight say, one 256x256 cubemap face each frame, resulting in however many (in this case 5) newly lit cubemaps a second.

Keep the the relighting to say, the sun/primary light and whatever changes to the skybox, and you’ve got a relatively cheap dynamically relightable image based lighting system, for relatively little coding effort. It shouldn’t even be that GPU intensive, you’re just re-shading a fixed screenbuffer with a shadow map applied, no draw calls or anything else needed. Heck do 3 faces a frame and you could do 150 cubemaps over ten seconds, assuming your primary environment lighting doesn’t change that quickly it would all be fine.

http://graphics.cs.aueb.gr/graphics/docs/papers/RadianceHintsPreprint.pdf

That is very interesting technique. Very, very fast, support arbitrary number of bounces, and it doesn’t have any special requirments on geometry.

Downside it supports on diffuse. But hey! You can’t have everything in single solution.

That could be combined with Cascaded Voxel Cone Tracing. Albeit it is not very high quality but seems very efficient.

Hmmm…I am not really sure, but 58.5 ms in Sponza on a GTX770 doesnt seem very efficient :frowning: Though I must admit that it looks like a interesting idea :slight_smile:

Parts of are interesting. Especially very low memory usage, compared to other techniques

Yep, thats what I got out of it as well. But I wonder how much gpu time they sacrifice as a trade off for memory.

http://hd-prg.com/RVGlobalIllumination.html

That is very interesting technique. It’s uses voxelization step, like the one used with cone tracing, but injects lighting similiarly to LPV.

It runs very fast, and deals with multiple light source quite well.

Just found this article that sounds really promising: http://www.engadget.com/2014/09/18/NVIDIA-Maxwell-flagships/.

This is the interesting part that is actually relevant to GI: “[FONT=Segoe UI]Finally, high-end maxwell cards will be able to take advantage of games that use Voxel Global Illumination, a new dynamic lighting technology that promises to promises to enable destructive environments with active, realistic lighting. How realistic is it? Realistic enough to debunk moon-landing conspiracy theories[FONT=Segoe UI], actually. NVIDIA says the new lighting solution will be available for UE4[FONT=Segoe UI] and other major engines later this year.”

Not sure if that means Epic is working on implementing the solution and it will be available to us as part of the engine within a year or if that means Epic will be able to implement it in a year. Would be nice to know if Epic has any plans with this or if this is news to them too.

At the very least that means that Nvidia will have the UE4 integration available and you could contact them about getting it integrated in your game. I’d love for Epic to add it in to the engine though.

Check this out… this is it, it’s called VXGI. During the 980 reveal, I was pretty shocked to find out that the demo they showed off was in UE4!!! :wink: Here’s hoping they put this in 4.5 but looks like integration is already happening. Just got a EVGA GTX 980 SC from Newegg and I hope we get to play with this real soon.

I think, if they hope for rapid adoption, this library will be available for free (binary version) to download by anyone to make integration.

I don’t see any big news about someone integrating GI Works, which means people doesn’t give a ****. I’m sure if Epic would integrate GI Works into engine, NVIDIA would scream all around to announce big news about it ;).

But if the binary version of GI Works would be available for everyone… Well I guess there are enough people in UE4 community to jump on board and integrate it for everyone benefit.

Though it depend how much changes to rendering there is needed to maintain reasonable integration. If it can be non invasive and make use of existing systems, I think it’s more than reasonable to integrate it into main branch.

Note VXGI - GI Works.