godotengine / godotengine/godot
BaseMaterial3D distance fade dithering exhibits checkerboard pattern when TAA is enabled
- 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
Assessment
This issue has not been assessed yet.