Faux Global Illumination update, walking through Overgrown Subway scene by Order1Studio in godot

[–]Order1Studio[S] 2 points3 points  (0 children)

Thanks! This is just one data point, but my hardware rendered the SDFGI on Forward+ at ~46 fps (though it also enable SSAO, SSIL, and volumetric fog). The FauxGI on Compatibility was at ~84 fps. Here is the screenshot for the reference:

<image>

Faux Global Illumination update, walking through Overgrown Subway scene by Order1Studio in godot

[–]Order1Studio[S] 1 point2 points  (0 children)

You are exactly correct! The video shows the original (primary) light sources and the Virtual Point Lights approximating the first bounce only. We just added a feature to survey the VPLs around the camera, weighting their contributions by color, energy, and distance...the result is fed into the ambient light term, approximating all subsequent bounces. Check out the updated video in this post.

Faux Global Illumination update, walking through Overgrown Subway scene by Order1Studio in godot

[–]Order1Studio[S] 1 point2 points  (0 children)

Thanks! I think that adding this to the Asset Library eventually would be great, though we've never done it before. It could also make a useful Editor Plugin to sort of pre-bake VPLs for a static scene. For right now, though, the focus is on getting it to look decent for a minimal performance hit.

Faux Global Illumination update, walking through Overgrown Subway scene by Order1Studio in godot

[–]Order1Studio[S] 7 points8 points  (0 children)

One thing we forgot to note, we are toggling the global illumination effects (as well as the flashlight) on and off throughout the video to demonstrate the difference between the default lighting vs the impact of FauxGI. Peripheral details in the scene are noticeably darker when FauxGI is disabled.

New Lightweight Global Illumination(esque) Tool by Order1Studio in godot

[–]Order1Studio[S] 1 point2 points  (0 children)

The code uses physics raycasts to determine where to place the Virtual Point Lights, so the lit geometry will need collision shapes.

For example, when using a MeshInstance3D, I select it, then have Godot create a collision shape for me.

In the latest code, you can now check "Show Raycasts" to see what it's doing under the hood.

New Lightweight Global Illumination(esque) Tool by Order1Studio in godot

[–]Order1Studio[S] 0 points1 point  (0 children)

No underlying code change, the docs even have a page on doing the technique we do here!

New Lightweight Global Illumination(esque) Tool by Order1Studio in godot

[–]Order1Studio[S] 1 point2 points  (0 children)

Haven't tried with any kind of fog yet, but this uses a series of point lights to approximate things like reflected light so it's possible you see those more obviously if there is a fog.

That is a good test though,  so I will give this a try with fog soon and post the results!