Skip to content

Directional LightmapGI denoising exhibits artifacts on surfaces close to emissive surface #86815

@TidB

Description

@TidB

Tested versions

  • Reproducible in v4.2.stable.official [46dc277]
  • Not reproducible in v4.1.stable.official [9704596]

System information

Godot v4.2.stable - Windows 10.0.19045 - Vulkan (Forward+) - dedicated Radeon RX 580 Series (Advanced Micro Devices, Inc.; 31.0.21902.5) - 12th Gen Intel(R) Core(TM) i5-12400 (12 Threads)

Issue description

I often place emissive meshes near other geometry (e.g. TV screens), which makes the following artifacts apparent:
image

The artifacts seem to arise from the denoiser step, as the un-denoised results (taken without the denoiser option) look similar enough:
image

While the denoised results show the artifacting (or perhaps, the lack of reducing the noise?):
image

I've only taken the topmost part of the directional lightmap file, but the other parts exhibit similar artifacting. Even though the example images were taken with a non-normal-mapped mesh, the result with a normal map is the same (you can try it out by using wall_mat instead of flat_mat inside the MRP).

This seems related to the introduction of the JNLM denoiser (#81659), as going back to OIDN inside the same 4.2 version produces this result:
image

Moving the emissive mesh a bit away (usually 1 m distance is enough) makes the artifacts disappear:
image
image

Steps to reproduce

  1. Create two meshes set up for LightmapGI, one of them emissive
  2. Position the emissive object close to the other mesh (less than 50 cm away, the closer the more noticeable)
  3. Activate LightmapGI's directional option and bake lightmaps

Minimal reproduction project (MRP)

directional-lightmap.zip

The main scene test-dir-denois contains the other scenes dir and non-dir, both of which have their own LightmapGI instance.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions