Global Illumination alternatives

Is it me, or do Shadows look insanely dark even at midday? Mind you I don’t think this is necessarily anything to do with the DFGI implementation, more just games in general. I mean, if you go outside in that environment IRL, you’d probably see hardly any shadow at all, or if you did it’d be considerably more lit up and faded than that.

This whole thread is crazy though… man. Epic have some of the smartest rendering people. Turnaround time on this has been insane.

Wow, I am excited for this! Great work so far.

@Laserman: You did tick “Generate mesh distance field” in the projects settings under rendering right?

@Nick!: I haven’t tested it in a real indoor environment, yet. I think it’s too early for that, since the current iteration of the tech has lots of artifacts in shadowed areas.

I don’t know if light from the rest of the sky would be intense enough to brighten those shadodws, but do remember that this is a stand alone building so the shadows on the floor are receiving very little bounce light from the building. If you had a few buildings in there then you would get both more shadows and more bounced light.

How many bounces does this method currently support, and will the number of bounces be adjustable either on a per project basis or by the end user to suit their hardware?

The problem is that this method does not support insanely long bounce distances, It’s something between 10-15 meters, it supports only one bounce.
But when then bounce reaches another surface, it actually looks very good, and transfer quite a lot of light information. If there would be support for 2-3 bounces, and high quality of indirect shadowing, this technique, can be used for realtime lighting of interiors, due the fact it does not leak trough thin meshes.

I don’t think the intention is to use this as standalone thing to light your scene. You probabaly want to use with SkyLight intensity set to something else than 0 (;.

The shadows do look dark (had the skylight set to 1). Here’s a comparison of intensity 1-3:

Yeah, I enabled that via the consolveVariables.ini and double checked it via the preferences and it was enabled.

This is one of my biggest pet peeves with video game rendering. I think a lot of artists rely too heavily on the game’s GI solution and are unwilling to accept that general lighting is really necessary. Actually, not only does light bounce an infinite number of times in real life (whereas lightmass only computes 3 bounces, and most dynamic GI solutions only compute up to 2 bounces), but light is practically coming from everywhere: the sun emits light, which is then scattered by the atmosphere, which then hits a multitude of surfaces scattering all that light in all directions. Generally speaking, most of the light is coming from the sun of course, but light is omnipresent until the sun recedes below the horizon and the sky dims.

Any dynamic GI solution should have some sort of ambiance measure that doesn’t need to be too accurate but simulates this kind of general lighting from all over. I’m pretty sure just trying to replicate light bouncing is not going to be enough because of how multi-directional light in the real world really is.

This is exactly what ambient occlusion does.

Edit: Also, skylight.

would like to see this GI used on the elemental demo and compare it with the SVOGI version and a VXGI & AHR version

a showdown of the ages!

I just downloaded the Master Branch, can’t see to get the distance field GI to work, when I’m using visualize distance field global illumination I just get black. I got a moveable skylight and moveable directional, and r.DistanceFieldGI=1 and r.GenerateMeshDistanceFields=1 in ConsoleVariables.ini

Thanks, I got it working.

This is all amazing work! I don’t understand ANY of it but it all looks !

There’s no second or higher bounce lighting supported yet, which is why the ground is so dark.

Due to the limited bounce distance and single bounce you definitely need other light sources to rely on, not just GI like you could with Lightmass baked lighting. For outdoors this means a skylight, for indoors it means multiple overlapping lights. I hope to improve these aspects but one step at a time.

There’s a lot of splotchiness on clean flat surfaces due to the interpolation method, and a lot of noise on foliage due to the low resolution sampling. These are ongoing challenges.

So far with the Surfel GI approach (the one The_Distiller posted all the beautiful images of) I have been going for leak-free or at least limited leaking, as this will be used in indoors scenes. This is a big challenge to do in realtime with larger bounce distances, which is why the bounce distance is fairly short (10m by default, you can increase with the skylight MaxOcclusionDistance). For the Heightfield GI I have been going for longer bounce distances with less accurate indirect shadowing (aka more leaking). This looks better with outdoor natural scenes like foliage and terrain, where light bounces everywhere and you never expect fully black. In the final solution which mixes both Surfel GI and Heightfield GI, I’m expecting to expose controls so you can pick whether you want ‘no leaking’ or ‘longer bounces’.

That’s true, I didn’t expect changing landscape materials to be important for now so those textures are baked. It’s possible to evaluate them on the fly to support dynamic changes, it wouldn’t even be a big change to the algorithm, it would just cost more GPU time. However with surfel GI material changes will be fully supported.

That is incorrect, Lightmass computes as many bounces as you request of it, the default is 3 and the upper limit is 10.

just got it working! that is pretty motherflipping cool. got some noise, but man, looking forward to the upcoming releases.

Yes, I know. But there are plenty of student projects and even professional ones that don’t. After doing some research, it seems stationary skylights can change color and intensity as necessary, which is , so that can totally work as an ambient solution in tandem with GI.

Well, this is nicer. I think the issue I kept seeing with games (not naming names) is they just forget to add skylights and environment lights. That’s not really Lightmass’s fault, so, I’m sorry for misconstruing it.

Mixed results might be best, tight surfel GI shadowing the heightfield GI, even if the shadowing distance is small it will look better. As for thin geometry and particles, I’ve found success with what I call “box sampling”. Just take the AABB of your asset, or whatever box you want, and sample GI in a sphere from the center. You can then construct, whatever, a spherical harmonic term to apply to the resulting geometry and you’re still going deferred. Works with transparent stuff too but then you don’t really get specular for glass or whatever unless you sample enough to not make it worth it to begin with. Still, you can specular sample as normal for a pane of glass if you have that set up, then “box” sample for the diffuse, if it’s transparent enough it looks fine.

There’s errors from this of course. But you can sample higher from a single spherical sample than trying to go per pixel on all that stuff, and then apply whatever hacky corrections you can think of like blending it with nearby “boxes” or etc.

So to clearify this subject:

I can have DFGI starting with 4.8 builds as an active option and then it may get even better (faster, higher quality) with later builds ?