Add incremental update mode to sky#40272
Conversation
d32e73d to
a54f93c
Compare
|
Thanks! |
|
Is the High Quality mode still relevant when we have High Quality Incremental? I can't see any upsides to it. ReflectionProbes only have an equivalent of High Quality Incremental (the Once update mode), not High Quality (ReflectionProbe's Always update mode is comparable to RealTime). |
|
@Calinou High Quality incremental needs several frames to converge. High Quality mode is preferable when you want the reflections to be immediately available on load. |
There is a special case to ensure that the sky is available as soon as possible when using the High Quality Incremental update mode. Doesn't that suffice? godot/servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp Lines 1247 to 1251 in 4601809 When updating the sky at run-time, I'm don't think having a really low framerate is a better experience over having parts of the sky being slightly out of date. |
Not really, that code only runs when the sky resource has been recreated from scratch. It doesn't apply when, for example, the user changes the sky material during a scene transition or loading screen etc.
I tend to agree with that. But that doesn't convince me that we should get rid of the Update once mode. |
When I tested #55933, I noticed that swapping the sky resource for a new one forced the sky to update. So I think it does work when you clear or reassign the sky resource entirely – but it won't trigger when you change a property within the sky resource. |
This adds two new
process_modestoSky.Automatic - selects the appropriate process mode based on shader usage. This is the new default. Ideally, users will be able to leave it on automatic and never select a difference mode.
High Quality Incremental - This is the same as High Quality, except it updates over 8 frames (by default). It processes each roughness layer in a frame to smooth out the cost of importance sampling all the layers. On high-end devices 8 frames will feel almost instant. Most importantly, this mode is used by
AUTOMATICwhen a light is used in the sky shader. So adding this mode will fix users have hiccups as they rotate the sun in the editor.I experimented with only updating 1 face per frame (updates over 48 frames). But the update delay was way more noticeable and the frame time reduction was not worth it.
This issue hasn't been reported in the bug tracker, but I have seen it mentioned a few times on IRC, Discord and Twitter