godotengine / godotengine/godot
Volumetric Fog with Temporal Reprojection + SpotLight3D attached to Player Camera is broken
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
- Reproducible in 4.3 Beta 1
### System information
Windows 10 - Godot v4.3 Beta 1 - Vulkan (Forward +) - Dedicated GPU (RTX 2080 Super)
### Issue description
When experimenting with Godot and 3D features, I wanted to have a scene with SDFGI enabled, Volumetric Fog with Temporal Reprojection enabled and also a SpotLight3D that the player can use to affect the fog (attached to the Camera)
As one can see in the video below, whenever the player moves, there is very heavy ghosting/delay.
This is even documented and known when hovering over the "Temporal Reprojection" setting.
The "solution" to this ghosting is to turn off Temporal Reprojection, but then the Volumetric Fog looks really bad and has heavy graphical glitches, especially together with SDFGI. So turning off the reprojection is not an option.
Turning on the reprojection is also not an option due to the ghosting.
How can I achieve the desired result in Godot 4, with Vol. Fog + Temp. Reprojection, SDFGI and Dynamic Lights that affect the fog?
### Steps to reproduce
- Have a simple scene, in this example i took the classic Sponza scene
- Have a simple FPS player controller
- Enable SDFGI
- Enable Volumetric Fog with Temporal Reprojection
- Attach a SpotLight3D to the player camera
- Play and move around
### Minimal reproduction project (MRP)
See the issue in this screen cap:
https://github.com/godotengine/godot/assets/1736929/2f63d5e4-1149-4eac-9f21-c59645a865cf
Contributor guide
Research direction
Start by reproducing the issue using the Sponza scene, an FPS controller, SDFGI, volumetric fog with Temporal Reprojection, and a camera-attached SpotLight3D. Compare movement with reprojection enabled and disabled, then determine what change would remove the ghosting while preserving the requested lighting and fog features.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- godot
- Domain
- computer-graphics, game-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100