Add ReflectionProbe.queue_update() and properties to control time slicing/filter mode#97773
Draft
Calinou wants to merge 1 commit into
Draft
Add ReflectionProbe.queue_update() and properties to control time slicing/filter mode#97773Calinou wants to merge 1 commit into
ReflectionProbe.queue_update() and properties to control time slicing/filter mode#97773Calinou wants to merge 1 commit into
Conversation
…licing/filter mode TODO: - Make Static update mode functional (it currently acts like Once). - Port to Compatibility.
Contributor
|
I need to find time to play with a build of this but just looking at the code, this is a nice way to provide control over reflection probes. Two enhancements here that might be interesting to consider:
Another suggestion that came my way that might be nice to take along here (or maybe as a separate PR), we should allow the reflection probe to override the world environment just like we do with cameras, so you can override the sky or background settings and such. That should be fairly easy to implement (I might raise a proposal for that one when I have a moment). |
Member
Author
See godotengine/godot-proposals#4782.
This is being tracked in godotengine/godot-proposals#11266. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I've redone #55929 from scratch following #55929 (comment), which adds many new options to choose from.
This provides much greater control on how and when reflection probes are updated, along with a
queue_update()method to force an update even when the reflection probe hasn't been moved.You can also now change the filter mode independently of the update mode, which allows you to use the real-time filter with the Once update mode (or the high-quality filter with the Always update mode). This is useful to ensure visual consistency when switching between update modes at run-time. The real-time filter allows the reflection to be done updating faster, which also allows the reflection probe to update more smoothly and more quickly when the scene loads.
The Automatic values for Update Slicing and Filter Mode match Godot 4.3 and prior's behavior, so existing scenes should be unaffected by this PR (in terms of performance or quality).
Tested in Forward+ and Mobile, not ported to Compatiblity yet.
and closes Add a true "Once" ReflectionProbe update mode, rename current "Once" to "When Moved" godot-proposals#2934.
Testing project: test_reflection_probe_slicing.zip
Preview
Notice the reflection update rate changing over time (see top-left corner).
Once update mode
update_slicing_once.mp4
Always update mode
update_slicing_always.mp4
TODO
For future PRs: