I would like my game to be rendered with a normal sky light, but when a specific post process is active, use a completely different lighting (a single point light).
Turning off every single light when the post process is active doesn’t sound like the right way to do that…
Instead, is it possible to get a Scene Texture that only uses a specific set of lights, and otherwise have these lights invisible during gameplay?
Unsure. I’d likely make a BP to toggle the lights for me.
Otherwise, look into Lighting Channels? You can set lights to shine on a given channel(s) and objects to recieve light on same channel(s). Unsure if you can do anything with that in post-process tho.
I was looking into light channels… but this would mean changing the light channel of every single object on the map when I enter the post process volume.
Is this static? Or is it the scene is rendered like normal with one set of lights, but CONCURRENTLY, you also want the post-process on top of that, based on that, but just lit by a completely different light?
In other words, you want both sets of lights to apply to the scene but at different steps in the pipeline?
if you use a single point light you can do the lighting calculation inside the post processing material. you have access to all the data in the gbuffer. it’s like a custom lighting pass.
i think you will render 2 full screen passes tho, unless there’s a switch somewhere to disable the default lighting computation pass the engine will render and you would “discard”. i’m not aware if that switch exists.
I thought so too. Even if you fake the lighting in the shader, you still have to properly account for specific specularity, roughness, etc; essentially lighting it twice.