The dynamic GI Myth

Running source built UE 4.6.1

I followed the following tutorials

1.A new, community-hosted Unreal Engine Wiki - Announcements - Epic Developer Community Forums
2.Lighting the Environment in Unreal Engine | Unreal Engine 5.3 Documentation
3.Light Propagation Volume now works with Emissive Material!! - Rendering - Epic Developer Community Forums!!

And none of those enables any GI at all.

This is my ConsoleVariables.ini

; ConsoleVariables.ini ; ; This file
allows to set console variables on
engine startup (In undefined order). ;
Console variables also can be set in
engine ini files (e.g. BaseEngine.ini,
DefaultEngine.ini) in the
[SystemSettings] section. ; This file
should be in the source control
database (for the comments and to know
where to find it) ; but kept empty
from variables. ; A developer can
change it locally to save time not
having to type repetitive ; console
variable settings. The variables need
to be in the section called [Startup].
; Later on we might have multiple
named sections referenced by the
section name. ; This would allow
platform specific or level specific
overrides. ; The name comparison is
not case sensitive and if the variable
doesn’t exists it’s silently ignored.
; ; Example file content: ; ;
[Startup] ; FogDensity = 0.9 ;
ImageGrain = 0.5 ; FreezeAtPosition =
2819.5520 416.2633 75.1500 65378 -25879 0

[Startup]
r.LightPropagationVolume=1 ;
Uncomment to get detailed logs on
shader compiles and the opportunity to
retry on errors
;r.ShaderDevelopmentMode=1 ; Uncomment
to dump shaders in the Saved folder ;
Warning: leaving this on for a while
will fill your hard drive with many
small files and folders
;r.DumpShaderDebugInfo=1 ; Uncomment
to enable parallel rendering at
startup ;r.RHICmdBypass=0

In the directional light (moveable) I have “Dynamic Indirect Lighting” checked (There is no "Affect Dynamic Indirect Lighting " check box anywhere)

In the emissive material I have “Emissive (Dynamic Area Lights)” checked (There is no “Dynamic Area Lighting” check box anywhere)

I also turned off the light map in world settings and placed an unbound post processing volume.

And then when i hit build There is no GI at all, The shadows are still sharp pitch black and the emissive material does not emits a single ray of light just bloom (color multiplied by 30)

So has dynamic GI removed from 4.6.1 ?

LPVs are currently not receiving much attention from the Epic renderer devs because it doesn’t turn out to produce very good results (especially in indoor environments or large outdoor environments) and uses significant GPU resources. Other approaches are being investigated right now, according to comments on the livestream.

I’m not even sure if LPVs work at the moment. Your best bet for now is to disable LPVs and try a combination of some of the new things they are working on (distance field AO, distance field raytraced shadows, etc.) to try to improve the look of your dynamic lighting.

Hi Commander Shepard,

I can assure you that Dynamic GI is in fact not a myth currently. LPV has been in the engine for quite some time (Enabled via the console variable r.LightPropagationVolume=1, as you pointed out).

By default in the editor it is off. You’ll need to adjust a couple of things to get it working correctly.

Make sure you Directional Light has “Dynamic Indirect Lighting” checked so that it can be injected into the LPV.)

To further adjust settings you’ll need to place a Post Process Volume in your scene and make sure it covers any areas you want to have the LPV affect or set it to Unbound to affect everywhere no matter its size.

Here are the results in 4.6.1:

I start out with No LPV and then enabled it via my directional movable light. Further settings in the post process volume.

This is still a non-production-ready system. There are known issues with it and it is expected to be buggy and experimental. Light leaking between exterior and interior scene is very noticeable.

With that in mind, there is also another method of Dynamic GI that is being explored currently as well. This is using the Distance Fields to generate GI and this feature is being actively developed.

You can find more information about it in this forum thread: Global Illumination alternatives - Feedback & Requests - Epic Developer Community Forums

The engineer behind Distance Fields has also said this in that thread as well:

Compared to LPV here’s how I see Distance Field GI:

  • Vastly higher quality indirect shadowing - leaking is actually solvable
  • More detail in color bleeding - material is evaluated per surfel (disk) isntead of for a huge voxel
  • Much higher view distance, not limited by volume texture scaling
  • Only single bounce for now (can be improved)
  • Have to be able to represent your scene with distance fields / heightfields

Take a look at the screen shots in this thread as well.

I hope the myth here has been busted and it actually does work and exists. :slight_smile:

Feel free to ask any questions. If you need help giving the distance field method a shot I can help there as well.

Tim

Do I need some experimental source built version of the engine to use GI? because even after a dozen attempts the LPV wont work at all. I’m now on 4.7.2 Launcher downloaded engine and the LPV still has no effect

No experimental source builds necessary.

You need to edit the consolevariables.ini file in the engine folder. This will turn on LPV. Then for each light that you want to inject GI into the LPV scene you need to enable " Dynamic Indirect Lighting."

At GDC the question was asked about the status of LPV. There are some improvements incoming from Lionhead Studios that will improve this feature. I’m not sure if it will still be in a non-production ready state at that point. From what was said, it’s looking like these improvements should be in 4.8, but no promises.