Thank you so much for taking the time to make this demo. This is very helpful. You have been more helpful than all the docs and tutorials I've gone through so far. Since I'm new to Godot, I'm still struggling with the basics. It seems the more I read the documentation, the more confused I get.
I added a button to your demo under the sliders to change to a new scene. I created a new scene using a ColorRect to cover the entire viewport. When I configure the button to use get_tree().change_scene("res://Scenes/ColorRect.tscn"), as the documentation says to do for switching scenes, the new scene does appear, but the changes made in BCS are lost.
How do I make these settings persist through scene changes? I've tried using the code below, also found in Godot docs to try to load the new scene into the master tree, but that didn't work correctly either. I've only posted part of the code I used, since the code example was kind of long.
If you can help me learn how to do proper scene changes with the shader being applied to all scenes, I'd be truly grateful.
func _deferred_goto_scene(path):
Immediately free the current scene,
there is no risk here.
current_scene.free()
# Load new scene.
var s = ResourceLoader.load(path)
# Instance the new scene.
current_scene = s.instance()
# Add it to the active scene, as child of root.
get_tree().get_root().add_child(current_scene)
# Optional, to make it compatible with the SceneTree.change_scene() API.
get_tree().set_current_scene(current_scene)
Thanks again.