Skip to content

specular_disabled render mode in shaders does not make the SPECULAR output zero #95102

Description

@MajorMcDoom

Tested versions

Reproducible in 4.3.rc1

System information

Godot v4.3.rc1 - Windows 10.0.22631 - GLES3 (Compatibility) - NVIDIA GeForce GTX 1660 SUPER (NVIDIA; 32.0.15.6070) - Intel(R) Core(TM) i7-10700F CPU @ 2.90GHz (16 Threads)

Issue description

Screenshot 2024-08-03 121238
Setting the render mode specular_disabled does eliminate specular contribution from lights, but not reflected light. The SPECULAR output is non-zero in this case. If this is intended, the namings are very confusing and should be either changed or documented better.

Steps to reproduce

Open attached project, and look at the two balls side-by-side. Note that one is blacker than the other.
ball1 has the black shader, and ball2 has the true_black shader. Both shaders have the render mode specular_disabled, but only true_black explicitly sets SPECULAR output to zero. ball still receives reflected light from the WorldEnvironment in the scene.

Minimal reproduction project (MRP)

bug-report.zip

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions