godotengine / godotengine/godot
Severe Visual Artifacts When FOV Changes with FSR2 < 1 or FSR1 + TAA when using shaders
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
Reproducible in godot 4.4.stable branch
### System information
Windows 10, RTX 2070, Pilote 572.83, Vulkan, i7-9700KF
### Issue description
When changing the field of view (FOV) in a 3D scene, severe visual artifacts appear under certain upscaling and anti-aliasing conditions. This issue is reproducible using a minimal project and are related to interactions with the fpsViewClip shader (classic shader technic to always draw view model on top).
https://github.com/user-attachments/assets/a6f56f9d-6a05-4e54-ad4f-4073904d1a27
The shader: https://godotshaders.com/shader/first-person-view-model-shader-updated-for-godot-4-3/
### Steps to Reproduce:
- Use FSR2 with a scaling factor less than 1, or use FSR1 with TAA enabled.
- Add the fpsViewClip shader to a material in a first-person setup.
- Dynamically change the camera’s FOV (e.g., zoom in/out).
- Observe visual artifacts (e.g., jittering, ghosting, or pixel stretching).
### Expected Behavior:
FOV changes should occur smoothly without producing distracting artifacts, regardless of the upscaling or anti-aliasing settings.
### Actual Behavior:
Severe visual artifacts occur when FOV is modified:
- With FSR2, only when scaling < 1.
- With FSR1, TAA must also be enabled.
_(The problem appears specifically in combination with the fpsViewClip shader)_
### Minimal reproduction project (MRP)
[bs_visualartefact-minimal.zip](https://github.com/user-attachments/files/21416607/bs_visualartefact-minimal.zip)
Contributor guide
Research direction
Run the attached minimal reproduction project with the fpsViewClip shader, varying FOV, FSR2 scaling below 1, and FSR1 with TAA as described. Compare the affected combinations and trace the Godot rendering path responsible for temporal upscaling or anti-aliasing. Done means FOV changes no longer produce jittering, ghosting, or pixel stretching in those configurations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- godot
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100