Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New environment GI, HDDAGI #86007

Closed
wants to merge 15 commits into from
Closed

New environment GI, HDDAGI #86007

wants to merge 15 commits into from

Conversation

reduz
Copy link
Member

@reduz reduz commented Dec 10, 2023

This is a new global illumination system meant to supersede SDFGI.
Key advantages are:

  • Much, much faster. Significantly lower frame time, orders of magnitude faster cascad
  • Generally higher quality (less arctifacting).
  • Much better occclusion (a lot less light leaked).
  • Less memory usage.

It is meant as a drop-in replacement. Should work as a replacement for SDFGI.

Known issues:

  • For some reason gets DEVICE LOST on Intel GPUs. No idea why.
  • Sharp Reflections not always play good with TAA (wobbly).
  • Darkening (occlusion) on some corners, just like SDFGI. I tried different techniques to see if any worked better. DDGI Octahedral VSM gets rid of them, but also leaks a lot more light, so I am unconvinced. Have other ideas to try, but I don't have infinite time :(
  • SDFGI spherical harmonics turned out to be buggy and not energy conserving. This makes GI look more saturated and have more light than in HDDAGI (which some people may appreciate more), but It's a bug 😢. Wondering how this can be compensated.
  • Still some further pending optimizations.

Future:

  • Dynamic object support.
  • High density mode (sub-probes).

This is a new global illumination system meant to supersede SDFGI.
Key advantages are:

* Much, much faster. Significantly lower frame time, orders of magnitude faster cascade updates whem moving.
* Generally higher quality (less arctifacting).
* Much better occclusion (a _lot_ less light leaked).
* Less memory usage.

It is meant as a drop-in replacement. Should work as a replacement for SDFGI.

Known issues:

- [ ] For some reason gets DEVICE LOST on Intel GPUs. No idea why.
- [ ] Sharp Reflections  not always play good with TAA (wobbly).

Future:

- [ ] Dynamic object support.
- [ ] High density mode (sub-probes).

Please test and report issues!
@Saul2022

This comment was marked as off-topic.

@jbromberg
Copy link

with these big performance improvements are there plans for mobile renderer support?

@mrjustaguy
Copy link
Contributor

Statically, Looks much better, and the performance is nuts, However...

I'm still getting this GI breaking issue like with SDFGI where moving objects have weird super distracting light transitions

2023-12-10.21-02-44.mp4

Here's VoxelGI for comparison 64x64x64 low

2023-12-10.21-08-34.mp4

And the old SDFGI at default settings

2023-12-10.21-09-40.mp4

@jcostello
Copy link
Contributor

I get a crash in every scene I open with this branch

@mrjustaguy
Copy link
Contributor

I found crashes if you have VoxelGI in scene active and turn off DynamicGI, also Volumetric fog with GI inject flashes white any time a cascade transition happens

@reduz
Copy link
Member Author

reduz commented Dec 10, 2023

@jcostello what is your GPU?

@mrjustaguy That is weird, the trilinear filter should work the same in old and new GI.
Can you share this scene? It shows the trilinear blending very clearly, maybe I can work on softening the transitions more.

@mrjustaguy
Copy link
Contributor

Old and new GI have the same issue, just voxelgi doesn't

@reduz
Copy link
Member Author

reduz commented Dec 10, 2023

@mrjustaguy Okay I guess I know how to fix this, but I somehow need to mark this object as static for the GI. Will have to talk to Clay on the best way to do this.

@mrjustaguy
Copy link
Contributor

Um, the metalic human is the thing moving, and exhibiting the issue, so not sure how that'd help..

@Calinou
Copy link
Member

Calinou commented Dec 10, 2023

Visual and performance comparison out of the box at 4K on a RTX 4090:

SDFGI HDDAGI (this PR)
Screenshot_20231210_225152 Screenshot_20231210_225214

We can probably make HDDAGI look more vivid by increasing the default value of Bounce Feedback a bit. Given HDDAGI is energy-conserving, we should be able to get closer to a default of 1.0 without risking issues with infinite feedback loops.

HDDAGI Bounce Feedback 0.75 HDDAGI Bounce Feedback 1.0
Screenshot_20231210_230548 Screenshot_20231210_230452

Note that this property doesn't affect performance, FPS is fluctuating a bit due to me taking the screenshot.


Making a baked VoxelGI node visible while DynamicGI is enabled will crash the engine:

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.3.dev.custom_build (db91139e2c6a1f1e15c1d259f0f078025b8bb9f9)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /lib64/libc.so.6(+0x3e9a0) [0x7fcd22a4c9a0] (??:0)
[2] bin/godot.linuxbsd.editor.x86_64() [0x44fb6fc] (/home/hugo/Documents/Git/godotengine/godot/./servers/rendering/renderer_rd/environment/gi.cpp:3301 (discriminator 1))
[3] bin/godot.linuxbsd.editor.x86_64() [0x37d9e00] (/home/hugo/Documents/Git/godotengine/godot/./core/object/ref_counted.h:222)
[4] bin/godot.linuxbsd.editor.x86_64() [0x37e4025] (/home/hugo/Documents/Git/godotengine/godot/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp:1978 (discriminator 2))
[5] bin/godot.linuxbsd.editor.x86_64() [0x3742c43] (/home/hugo/Documents/Git/godotengine/godot/./core/templates/paged_array.h:146)
[6] bin/godot.linuxbsd.editor.x86_64() [0x36267be] (/home/hugo/Documents/Git/godotengine/godot/./servers/rendering/renderer_scene_cull.cpp:3343 (discriminator 1))
[7] bin/godot.linuxbsd.editor.x86_64() [0x362d12f] (/home/hugo/Documents/Git/godotengine/godot/./core/math/projection.cpp:935)
[8] bin/godot.linuxbsd.editor.x86_64() [0x35ee8a7] (/home/hugo/Documents/Git/godotengine/godot/./servers/rendering/renderer_viewport.cpp:256)
[9] bin/godot.linuxbsd.editor.x86_64() [0x360aaa6] (/home/hugo/Documents/Git/godotengine/godot/./servers/rendering/renderer_viewport.cpp:322)
[10] bin/godot.linuxbsd.editor.x86_64() [0x36ca75e] (/home/hugo/Documents/Git/godotengine/godot/./servers/rendering/renderer_viewport.cpp:777)
[11] bin/godot.linuxbsd.editor.x86_64() [0x4a1f40] (/home/hugo/Documents/Git/godotengine/godot/core/config/engine.cpp:351)
[12] bin/godot.linuxbsd.editor.x86_64() [0x4a3a4a] (/home/hugo/Documents/Git/godotengine/godot/platform/linuxbsd/os_linuxbsd.cpp:933 (discriminator 1))
[13] bin/godot.linuxbsd.editor.x86_64() [0x432a11] (/home/hugo/Documents/Git/godotengine/godot/platform/linuxbsd/godot_linuxbsd.cpp:74)
[14] /lib64/libc.so.6(+0x2814a) [0x7fcd22a3614a] (??:0)
[15] /lib64/libc.so.6(__libc_start_main+0x8b) [0x7fcd22a3620b] (??:0)
[16] bin/godot.linuxbsd.editor.x86_64() [0x43e3c5] (??:?)
-- END OF BACKTRACE --
================================================================

The same occurs if you disable DynamicGI while a baked VoxelGI node is visible.


Bright green voxels can occasionally appear in floor-wall intersections in godot-reflection. This is more noticeable at low cell sizes (using Min Cell Size = 0.05 here):

simplescreenrecorder-2023-12-10_23.52.23.mp4

Moving the camera away from a cascade will occasionally cause black flickering artifacts to appear. These are most noticeable when using the DynamicGI Cascades debug draw mode:

simplescreenrecorder-2023-12-10_23.14.28.mp4
simplescreenrecorder-2023-12-10_23.18.21.mp4

It seems changing Cascade Format to any value other than the default causes lighting within GI to be black, even though reflections still render:

Default cascade format Modified cascade format
Screenshot_20231210_225449 Screenshot_20231210_225457

Restarting the editor doesn't fix this.


The project setting enum hint for HDDAGI Frames To Converge is broken:

image

Selecting the last value spams errors, while selecting the second-to-last value crashes the engine:

================================================================
handle_crash: Program crashed with signal 8
Engine version: Godot Engine v4.3.dev.custom_build (db91139e2c6a1f1e15c1d259f0f078025b8bb9f9)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /lib64/libc.so.6(+0x3e9a0) [0x7f4c82e489a0] (??:0)
[2] /home/hugo/Documents/Git/godotengine/godot/bin/godot.linuxbsd.editor.x86_64() [0x37ae84a] (/home/hugo/Documents/Git/godotengine/godot/./servers/rendering/renderer_rd/environment/gi.cpp:1113)
[3] /home/hugo/Documents/Git/godotengine/godot/bin/godot.linuxbsd.editor.x86_64() [0x37e7e14] (/home/hugo/Documents/Git/godotengine/godot/./core/object/ref_counted.h:222)
[4] /home/hugo/Documents/Git/godotengine/godot/bin/godot.linuxbsd.editor.x86_64() [0x3742c43] (/home/hugo/Documents/Git/godotengine/godot/./core/templates/paged_array.h:146)
[5] /home/hugo/Documents/Git/godotengine/godot/bin/godot.linuxbsd.editor.x86_64() [0x36267be] (/home/hugo/Documents/Git/godotengine/godot/./servers/rendering/renderer_scene_cull.cpp:3343 (discriminator 1))
[6] /home/hugo/Documents/Git/godotengine/godot/bin/godot.linuxbsd.editor.x86_64() [0x362d12f] (/home/hugo/Documents/Git/godotengine/godot/./core/math/projection.cpp:935)
[7] /home/hugo/Documents/Git/godotengine/godot/bin/godot.linuxbsd.editor.x86_64() [0x35ee8a7] (/home/hugo/Documents/Git/godotengine/godot/./servers/rendering/renderer_viewport.cpp:256)
[8] /home/hugo/Documents/Git/godotengine/godot/bin/godot.linuxbsd.editor.x86_64() [0x360aaa6] (/home/hugo/Documents/Git/godotengine/godot/./servers/rendering/renderer_viewport.cpp:322)
[9] /home/hugo/Documents/Git/godotengine/godot/bin/godot.linuxbsd.editor.x86_64() [0x36ca75e] (/home/hugo/Documents/Git/godotengine/godot/./servers/rendering/renderer_viewport.cpp:777)
[10] /home/hugo/Documents/Git/godotengine/godot/bin/godot.linuxbsd.editor.x86_64() [0x4a1f40] (/home/hugo/Documents/Git/godotengine/godot/core/config/engine.cpp:351)
[11] /home/hugo/Documents/Git/godotengine/godot/bin/godot.linuxbsd.editor.x86_64() [0x4a3a4a] (/home/hugo/Documents/Git/godotengine/godot/platform/linuxbsd/os_linuxbsd.cpp:933 (discriminator 1))
[12] /home/hugo/Documents/Git/godotengine/godot/bin/godot.linuxbsd.editor.x86_64() [0x432a11] (/home/hugo/Documents/Git/godotengine/godot/platform/linuxbsd/godot_linuxbsd.cpp:74)
[13] /lib64/libc.so.6(+0x2814a) [0x7f4c82e3214a] (??:0)
[14] /lib64/libc.so.6(__libc_start_main+0x8b) [0x7f4c82e3220b] (??:0)
[15] /home/hugo/Documents/Git/godotengine/godot/bin/godot.linuxbsd.editor.x86_64() [0x43e3c5] (??:?)
-- END OF BACKTRACE --
================================================================

I suggest renaming the HDDAGI project settings to DynamicGI, for consistency with the debug draw mode and Environment properties.


Testing project: test_new_gi.zip


Issues fixed in latest revision of this PR

I get a crash when opening https://github.com/Calinou/godot-reflection with this branch (Linux, GeForce RTX 4090 with NVIDIA 545.29.06):

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.3.dev.custom_build (db91139e2c6a1f1e15c1d259f0f078025b8bb9f9)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /lib64/libc.so.6(+0x3e9a0) [0x7f26c1e939a0] (??:0)
[2] bin/godot.linuxbsd.editor.x86_64() [0x37c6661] (/home/hugo/Documents/Git/godotengine/godot/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp:641 (discriminator 1))
[3] bin/godot.linuxbsd.editor.x86_64() [0x37e2c95] (/home/hugo/Documents/Git/godotengine/godot/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp:1753)
[4] bin/godot.linuxbsd.editor.x86_64() [0x3742c43] (/home/hugo/Documents/Git/godotengine/godot/./core/templates/paged_array.h:146)
[5] bin/godot.linuxbsd.editor.x86_64() [0x36267be] (/home/hugo/Documents/Git/godotengine/godot/./servers/rendering/renderer_scene_cull.cpp:3343 (discriminator 1))
[6] bin/godot.linuxbsd.editor.x86_64() [0x362afde] (/home/hugo/Documents/Git/godotengine/godot/./core/object/ref_counted.h:209)
[7] bin/godot.linuxbsd.editor.x86_64() [0x362b7f3] (/home/hugo/Documents/Git/godotengine/godot/./servers/rendering/renderer_scene_cull.cpp:3496)
[8] bin/godot.linuxbsd.editor.x86_64() [0x36c9d55] (/home/hugo/Documents/Git/godotengine/godot/./servers/rendering/rendering_server_default.cpp:91)
[9] bin/godot.linuxbsd.editor.x86_64() [0x4a27f9] (/home/hugo/Documents/Git/godotengine/godot/core/config/engine.cpp:351)
[10] bin/godot.linuxbsd.editor.x86_64() [0x4a3a4a] (/home/hugo/Documents/Git/godotengine/godot/platform/linuxbsd/os_linuxbsd.cpp:933 (discriminator 1))
[11] bin/godot.linuxbsd.editor.x86_64() [0x432a11] (/home/hugo/Documents/Git/godotengine/godot/platform/linuxbsd/godot_linuxbsd.cpp:74)
[12] /lib64/libc.so.6(+0x2814a) [0x7f26c1e7d14a] (??:0)
[13] /lib64/libc.so.6(__libc_start_main+0x8b) [0x7f26c1e7d20b] (??:0)
[14] bin/godot.linuxbsd.editor.x86_64() [0x43e3c5] (??:?)
-- END OF BACKTRACE --
================================================================
[1]    35229 IOT instruction (core dumped)  bin/godot.linuxbsd.editor.x86_64 --path ~/Documents/Godot/godot-reflection/

It renders a single frame before crashing:

Screenshot_20231210_222530 webp

llvmpipe also crashes on the same project with the same backtrace, so this isn't a NVIDIA-specific issue.

@Lasuch69
Copy link
Contributor

Works fine on my end.

Godot v4.3.dev unknown - Fedora Linux 38.20231205.0 (Silverblue) - Wayland - Vulkan (Forward+) - dedicated AMD Radeon RX 550 / 550 Series (RADV POLARIS12) () - AMD Ryzen 5 3400G with Radeon Vega Graphics (8 Threads)

image

@reduz
Copy link
Member Author

reduz commented Dec 17, 2023

Actually I don't want to squash my working commits since there is a lot of interesting experimenting in there. Will close this PR and open a new one.

@reduz reduz mentioned this pull request Dec 17, 2023
5 tasks
@reduz
Copy link
Member Author

reduz commented Dec 17, 2023

Superseded by #86267

@reduz reduz closed this Dec 17, 2023
@AThousandShips AThousandShips removed this from the 4.x milestone Dec 17, 2023
reduz added a commit to reduz/godot that referenced this pull request Dec 19, 2023
Supersedes godotengine#86007

This is a new global illumination system that is a full upgrade to SDFGI
Key advantages are:

* Significantly faster base frame time.
* An order of magnitude faster updates (SDFGI drops frames very significantly when moving, as a consequence of having to redo its entire SDF even for a small motion).
* Higher quality (less light leaks, properly energy conservation, much better reflections, others)
* Occlusion remains the same as in SDFGI. I experimented with other systems (the one in DDGI) but everything has worse tradeoffs.

It is meant as a drop-in replacement, so games using SDFGI should get HDDAGI transparently.

TODO:

- [ ] For some reason gets DEVICE LOST on Intel GPUs. Can´t figure out why.
- [ ] Waiting for a PR fixing the normal buffer precision in order to fix some issues.

TODO AFTER MERGING:

- [ ] High density probes support.
- [ ] Dynamic objects support.

Known issues:
@Voc007
Copy link

Voc007 commented Jan 5, 2024

sorry, not fimilar with pull request ? how would i download this feature to try on linux ?

@WickedInsignia
Copy link

sorry, not fimilar with pull request ? how would i download this feature to try on linux ?

Usually you would go to 'Checks" above and then "Artifacts" on the top right to download a build but the builds for this PR have expired. No builds have been made for #86267 either, if you want to test this feature you'll have to build it yourself unless Juan builds another set of artifacts.

@Voc007
Copy link

Voc007 commented Jan 8, 2024

oh okay , bummer, i will just wait it out, thanks for your help

reduz added a commit to reduz/godot that referenced this pull request Mar 10, 2024
Supersedes godotengine#86007

This is a new global illumination system that is a full upgrade to SDFGI
Key advantages are:

* Significantly faster base frame time.
* An order of magnitude faster updates (SDFGI drops frames very significantly when moving, as a consequence of having to redo its entire SDF even for a small motion).
* Higher quality (less light leaks, properly energy conservation, much better reflections, others)
* Occlusion remains the same as in SDFGI. I experimented with other systems (the one in DDGI) but everything has worse tradeoffs.

It is meant as a drop-in replacement, so games using SDFGI should get HDDAGI transparently.

TODO:

- [ ] For some reason gets DEVICE LOST on Intel GPUs. Can´t figure out why.
- [ ] Waiting for a PR fixing the normal buffer precision in order to fix some issues.

TODO AFTER MERGING:

- [ ] High density probes support.
- [ ] Dynamic objects support.

Known issues:
fire pushed a commit to V-Sekai/godot that referenced this pull request Mar 31, 2024
Supersedes godotengine#86007

This is a new global illumination system that is a full upgrade to SDFGI
Key advantages are:

* Significantly faster base frame time.
* An order of magnitude faster updates (SDFGI drops frames very significantly when moving, as a consequence of having to redo its entire SDF even for a small motion).
* Higher quality (less light leaks, properly energy conservation, much better reflections, others)
* Occlusion remains the same as in SDFGI. I experimented with other systems (the one in DDGI) but everything has worse tradeoffs.

It is meant as a drop-in replacement, so games using SDFGI should get HDDAGI transparently.

TODO:

- [ ] For some reason gets DEVICE LOST on Intel GPUs. Can´t figure out why.
- [ ] Waiting for a PR fixing the normal buffer precision in order to fix some issues.

TODO AFTER MERGING:

- [ ] High density probes support.
- [ ] Dynamic objects support.

Known issues:
reduz added a commit to reduz/godot that referenced this pull request Jul 11, 2024
Supersedes godotengine#86007

This is a new global illumination system that is a full upgrade to SDFGI
Key advantages are:

* Significantly faster base frame time.
* An order of magnitude faster updates (SDFGI drops frames very significantly when moving, as a consequence of having to redo its entire SDF even for a small motion).
* Higher quality (less light leaks, properly energy conservation, much better reflections, others)
* Occlusion remains the same as in SDFGI. I experimented with other systems (the one in DDGI) but everything has worse tradeoffs.

It is meant as a drop-in replacement, so games using SDFGI should get HDDAGI transparently.

TODO:

- [ ] For some reason gets DEVICE LOST on Intel GPUs. Can´t figure out why.
- [ ] Waiting for a PR fixing the normal buffer precision in order to fix some issues.

TODO AFTER MERGING:

- [ ] High density probes support.
- [ ] Dynamic objects support.

Known issues:
RadiantUwU pushed a commit to RadiantUwU/godot that referenced this pull request Sep 1, 2024
Supersedes godotengine#86007

This is a new global illumination system that is a full upgrade to SDFGI
Key advantages are:

* Significantly faster base frame time.
* An order of magnitude faster updates (SDFGI drops frames very significantly when moving, as a consequence of having to redo its entire SDF even for a small motion).
* Higher quality (less light leaks, properly energy conservation, much better reflections, others)
* Occlusion remains the same as in SDFGI. I experimented with other systems (the one in DDGI) but everything has worse tradeoffs.

It is meant as a drop-in replacement, so games using SDFGI should get HDDAGI transparently.

TODO:

- [ ] For some reason gets DEVICE LOST on Intel GPUs. Can´t figure out why.
- [ ] Waiting for a PR fixing the normal buffer precision in order to fix some issues.

TODO AFTER MERGING:

- [ ] High density probes support.
- [ ] Dynamic objects support.

Known issues:
RadiantUwU pushed a commit to RadiantUwU/godot that referenced this pull request Sep 1, 2024
Supersedes godotengine#86007

This is a new global illumination system that is a full upgrade to SDFGI
Key advantages are:

* Significantly faster base frame time.
* An order of magnitude faster updates (SDFGI drops frames very significantly when moving, as a consequence of having to redo its entire SDF even for a small motion).
* Higher quality (less light leaks, properly energy conservation, much better reflections, others)
* Occlusion remains the same as in SDFGI. I experimented with other systems (the one in DDGI) but everything has worse tradeoffs.

It is meant as a drop-in replacement, so games using SDFGI should get HDDAGI transparently.

TODO:

- [ ] For some reason gets DEVICE LOST on Intel GPUs. Can´t figure out why.
- [ ] Waiting for a PR fixing the normal buffer precision in order to fix some issues.

TODO AFTER MERGING:

- [ ] High density probes support.
- [ ] Dynamic objects support.

Known issues:
RadiantUwU pushed a commit to RadiantUwU/godot that referenced this pull request Sep 2, 2024
Supersedes godotengine#86007

This is a new global illumination system that is a full upgrade to SDFGI
Key advantages are:

* Significantly faster base frame time.
* An order of magnitude faster updates (SDFGI drops frames very significantly when moving, as a consequence of having to redo its entire SDF even for a small motion).
* Higher quality (less light leaks, properly energy conservation, much better reflections, others)
* Occlusion remains the same as in SDFGI. I experimented with other systems (the one in DDGI) but everything has worse tradeoffs.

It is meant as a drop-in replacement, so games using SDFGI should get HDDAGI transparently.

TODO:

- [ ] For some reason gets DEVICE LOST on Intel GPUs. Can´t figure out why.
- [ ] Waiting for a PR fixing the normal buffer precision in order to fix some issues.

TODO AFTER MERGING:

- [ ] High density probes support.
- [ ] Dynamic objects support.

Known issues:
RadiantUwU pushed a commit to RadiantUwU/godot that referenced this pull request Sep 2, 2024
Supersedes godotengine#86007

This is a new global illumination system that is a full upgrade to SDFGI
Key advantages are:

* Significantly faster base frame time.
* An order of magnitude faster updates (SDFGI drops frames very significantly when moving, as a consequence of having to redo its entire SDF even for a small motion).
* Higher quality (less light leaks, properly energy conservation, much better reflections, others)
* Occlusion remains the same as in SDFGI. I experimented with other systems (the one in DDGI) but everything has worse tradeoffs.

It is meant as a drop-in replacement, so games using SDFGI should get HDDAGI transparently.

TODO:

- [ ] For some reason gets DEVICE LOST on Intel GPUs. Can´t figure out why.
- [ ] Waiting for a PR fixing the normal buffer precision in order to fix some issues.

TODO AFTER MERGING:

- [ ] High density probes support.
- [ ] Dynamic objects support.

Known issues:
ChloePrime pushed a commit to ChloePrime/Lolidot that referenced this pull request Sep 30, 2024
Supersedes godotengine#86007

This is a new global illumination system that is a full upgrade to SDFGI
Key advantages are:

* Significantly faster base frame time.
* An order of magnitude faster updates (SDFGI drops frames very significantly when moving, as a consequence of having to redo its entire SDF even for a small motion).
* Higher quality (less light leaks, properly energy conservation, much better reflections, others)
* Occlusion remains the same as in SDFGI. I experimented with other systems (the one in DDGI) but everything has worse tradeoffs.

It is meant as a drop-in replacement, so games using SDFGI should get HDDAGI transparently.

TODO:

- [x] For some reason gets DEVICE LOST on Intel GPUs. Can´t figure out why.
- [x] Waiting for a PR fixing the normal buffer precision in order to fix some issues.

TODO AFTER MERGING:

- [ ] High density probes support.
- [ ] Dynamic objects support.

Known issues:
@ClintochX
Copy link

I'm noob here. please how can i test HDDAGI? been looking for a build!

@atirut-w
Copy link
Contributor

atirut-w commented Oct 2, 2024

This one's outdated and got superseded by #86267. Go check that one out instead.

SaracenOne pushed a commit to V-Sekai/godot that referenced this pull request Oct 10, 2024
Supersedes godotengine#86007

This is a new global illumination system that is a full upgrade to SDFGI
Key advantages are:

* Significantly faster base frame time.
* An order of magnitude faster updates (SDFGI drops frames very significantly when moving, as a consequence of having to redo its entire SDF even for a small motion).
* Higher quality (less light leaks, properly energy conservation, much better reflections, others)
* Occlusion remains the same as in SDFGI. I experimented with other systems (the one in DDGI) but everything has worse tradeoffs.

It is meant as a drop-in replacement, so games using SDFGI should get HDDAGI transparently.

TODO:

- [ ] For some reason gets DEVICE LOST on Intel GPUs. Can´t figure out why.
- [ ] Waiting for a PR fixing the normal buffer precision in order to fix some issues.

TODO AFTER MERGING:

- [ ] High density probes support.
- [ ] Dynamic objects support.

Known issues:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.