Hi, I'm building my first game and learning Godot, and I have a question about how to achieve an effect I am after. I have programming experience but no game dev experience.
Goal: I want to create a lighting effect where The whole screen is greyscale, with certain elements (floor and background) visible, and certain elements (trees, etc) not visible. A small circular light that shows every element within the radius in full normal colour, and all elements are visible.
What I currently have - a simple light, which:
Video here:
https://imgur.com/a/LauX1Gx ( https://imgur.com/a/LauX1Gx
embedded doesn't seem to work)
I'm achieving this using an approach similar to: https://github.com/godotengine/godot-demo-projects/tree/master/2d/light2d_as_mask - which uses only a white circle png with a gradient, and Light2d. The floor has CanvasItemMaterial
set to Light Only
. No shaders etc.
I figure I'm going to need multiple layers, and potentially shaders (which scares me) but I'm struggling to get a start on this - especially how to deal with the overlap between the greyscale background and the full-colour circle.
I'm not sure if it's a Shader Q or something else, so apologies if this is in the wrong place.
Any help would be greatly appreciated!
Thanks! Can put the repo on Github and share if needed.