Skip to content

BaseMaterial3D clearcoat rendering is broken with material roughness set to 0.0 in Forward+/Mobile #95207

@Calinou

Description

@Calinou

Tested versions

  • Reproducible in: 4.0.stable, 4.1.4.stable, 4.2.2.stable, 4.3.rc e343dbb

System information

Godot v4.3.rc (e343dbb) - Fedora Linux 40 (KDE Plasma) - X11 - GLES3 (Compatibility) - NVIDIA GeForce RTX 4090 (nvidia; 555.58.02) - 13th Gen Intel(R) Core(TM) i9-13900K (32 Threads)

Issue description

Clearcoat rendering is broken with material roughness set to 0.0 in Forward+/Mobile. Specular lobes from all light types will regularly disappear in an artifact-like pattern. This does not occur with roughness set to 0.01 or greater.

The artifacts also look different in Forward+ compared to Mobile. They depend on viewport resolution and camera distance/rotation either way, as seen in the videos below:

Forward+

Roughness = 0.0 Roughness = 0.01
Screenshot_20240806_195606 png webp Screenshot_20240806_195618 png webp

The issue in action:

clearcoat_roughness_0_forward_plus.mp4

Mobile

Roughness = 0.0 Roughness = 0.01
Screenshot_20240806_195638 png webp Screenshot_20240806_195653 png webp

The issue in action:

clearcoat_roughness_0_mobile.mp4

Steps to reproduce

  • Create a MeshInstance3D with a SphereMesh. Add a StandardMaterial3D, set its Roughness to 0.0 and Metallic to 1.0. Enable Clearcoat.
  • Move around the camera in the 3D editor. Try resizing the 3D editor viewport as well.
  • At some point, specular lobes from the clearcoat will disappear.

Minimal reproduction project (MRP)

test_clearcoat_roughness_zero.zip

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Up for grabs

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions