Skip to content

OpenGL: Fog color is incorrect if one of the components is exactly 0 #66459

@Calinou

Description

@Calinou

Related to #66456 and #66462.

Godot version

4.0.beta (53d2a9a)

System information

Fedora 36, GeForce GTX 1080 (NVIDIA 515.65.01)

Issue description

Notice how the fog color suddenly changes as I hit 0 on the red, green and blue channels respectively:

out.mp4

This doesn't occur when using the Vulkan Clustered renderer. This hints at a division by zero or NaN being produced by the shader, as fog rendering gets strange colors in general. You can notice a black stripe in the sky which is only visible when fog is enabled, despite #66456.

Steps to reproduce

  • Switch to the OpenGL driver in the Project Settings.
    • Make sure to start the editor with single-window mode enabled afterwards. This can be done by enabling Single Window Mode in the Editor Settings before changing the driver, or by opening the project in the editor directly with the --single-window command line argument.
  • Add a WorldEnvironment node, a Camera3D node and a MeshInstance3D in front of the camera.
  • Enable fog. Change the color using the color picker slowly towards pure black, by adjusting each channel individually with the sliders.

Minimal reproduction project

test_opengl_fog_sky_affect.zip

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions