godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
89.57k stars 20.42k forks source link

[4.0 Beta3] Reflections of moving objects remain static when SDFGI is on #67808

Closed macryc closed 1 year ago

macryc commented 1 year ago

Godot version

4.0 Beta 3

System information

Win 10, RTX 2070 mobile

Issue description

Reflections on reflective surfaces (ie, surfaces with a standard material, low refraction + Environment node with SDFGI enabled) behave as if they were getting baked into the surface and don't update then the object casting the reflection is moving.

See this tweet (when the boat moves, its reflection in the water remains static): https://twitter.com/devinthewater/status/1584120475240009729

Steps to reproduce

Create a 3d scene create any mesh object create a mesh instance (plane), place it below the object, add a standard material on the material, disable alpha and set refraction to 0 to make the surface reflective create an Environment node, new environment enable SDFGI with default settings - you should now see the object's reflection on the surface grab and move the object, see how its reflection stays motionless.

Minimal reproduction project

No response

mrjustaguy commented 1 year ago

that isn't a bug, you're baking the boat into SDFGI, you should set the boat to dynamic instead of static, as it isn't static.

Calinou commented 1 year ago

SDFGI doesn't support dynamic occluders. Use a ReflectionProbe node for fully real-time reflections, or use VoxelGI instead of SDFGI (but keep https://github.com/godotengine/godot/issues/55359 in mind).