godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
91.33k stars 21.24k forks source link

Voxel GI Sky Indirect Creates Banding Artifacts #84746

Open WickedInsignia opened 1 year ago

WickedInsignia commented 1 year ago

Godot version

4.5 Beta 5

System information

Windows 11, Nvidia RTX4070ti, AMD Ryzen7700x

Issue description

Voxel GI creates extreme banding artifacts from sky indirect contribution when "interior" is unticked. This is noticeable on perfectly matte materials and very noticeable on reflective materials. The effect is exacerbated by low domain subdiv levels but not entirely resolved by higher ones. This may be one of the main culprits behind issue #50842.

When sky indirect contribution is allowed, noticeable banding occurs on all materials and is most noticeable in shadowed areas on flat non-textural surfaces at normal to high exposures. This creates problems for low-poly and minimalist styles: VoxelGISkyBanding01

When the probe is set to "inside" mode, the banding is not present (exposure increased to account for lack of available light): VoxelGISkyBanding02

This effect is very noticeable on reflective surfaces, with severe banding appearing on a range of roughness settings. Here is a nonmetallic material with minimum roughness: VoxelGISkyBanding04 VoxelGISkyBanding03

These artifacts are creating some problems that are difficult to work around in my own projects, where they present very noticeably. Top image is exterior mode, bottom image is interior mode: VoxelGISkyBanding05 VoxelGISkyBanding06 VoxelGISkyBanding07 VoxelGISkyBanding08

Steps to reproduce

Use VoxelGI in exterior mode on flat non-textural materials. Higher exposures in shadowed areas show the artifacts more readily.

Minimal reproduction project

VoxelGI Sky Banding.zip

Calinou commented 1 year ago

Do these artifacts become less noticeable when setting the VoxelGI quality to High in the project settings?

WickedInsignia commented 1 year ago

Do these artifacts become less noticeable when setting the VoxelGI quality to High in the project settings?

No, they become more noticeable since they occur at a higher frequency.

Low Quality: VoxelGISkyBanding_LowQuality

High Quality: VoxelGISkyBanding_HighQuality

jams3223 commented 4 months ago

Has this issue been fixed?

Calinou commented 4 months ago

Has this issue been fixed?

I can still reproduce it as of 4.3.beta3. Note that reducing Dynamic Range to 1 in the VoxelGIData doesn't fix the issue. Adjusting bias or normal bias also doesn't help.

That said, this issue may be considered a duplicate of https://github.com/godotengine/godot/issues/50842 since they are due to the same cause (a bug or limitation in VoxelGI's voxel cone tracing for drawing reflections).

jams3223 commented 4 months ago

Has this issue been fixed?

I can still reproduce it as of 4.3.beta3. Note that reducing Dynamic Range to 1 in the VoxelGIData doesn't fix the issue. Adjusting bias or normal bias also doesn't help.

That said, this issue may be considered a duplicate of #50842 since they are due to the same cause (a bug or limitation in VoxelGI's voxel cone tracing for drawing reflections).

Hope Juan fixes them.