godotengine / godotengine/godot

BaseMaterial3D distance fade dithering exhibits checkerboard pattern when TAA is enabled

Open
#94,841 0 comments 0 reactions 0 assignees View on GitHub
bug topic:3d topic:rendering
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

- Reproducible in: 4.0.4.stable, 4.1.4.stable, 4.2.2.stable, 4.3.rc e343dbbcc

### System information

Godot v4.3.beta (e343dbbcc) - Fedora Linux 40 (KDE Plasma) - X11 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 4090 (nvidia; 555.58.02) - 13th Gen Intel(R) Core(TM) i9-13900K (32 Threads)

### Issue description

When you move towards or away from a material that has BaseMaterial3D distance fade dithering (either Pixel Dither or Object Dither), you can see a checkerboard pattern appear:

https://github.com/user-attachments/assets/50e1cfaa-a618-4791-9a99-519eef0db942

This pattern's size is resolution-dependent, but its size also depends on your movement speed. Depending on your movement direction, its shape may also change (it'll be purely horizontal lines if moving exactly sideways).

https://github.com/user-attachments/assets/b6001a15-8ae0-416b-82be-02ff296fff68

This pattern is hardly visible with FSR2 in comparison:

https://github.com/user-attachments/assets/2e5cb669-2eb5-4d56-bdf1-c08113f2c612

### Steps to reproduce

- Use the Forward+ rendering method (required for TAA to work).
- Enable **Use TAA** in the Project Settings.
- Create a MeshInstance3D with a BoxMesh, and add a StandardMaterial3D with Distance Fade > Pixel Dither enabled on it. Set the Min Distance and Max Distance so you can see the dithering pattern over a large distance.

### Minimal reproduction project (MRP)

[test_taa_dither_checkerboard.zip](https://github.com/user-attachments/files/16401144/test_taa_dither_checkerboard.zip)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.