Engine icon indicating copy to clipboard operation
Engine copied to clipboard

Enhancement: light_bounce(_spot)

Open TheEnderek0 opened this issue 1 month ago • 6 comments

What would this enhancement be for?

Entity

Describe your enhancement suggestion in more detail

light_bounce(_spot) is an entity that only generates bounced lighting. It has (pretty much) all the (needed) keyvalues from light/light_spot.

With the addition of dynamic lights, the need for an entity that is able to generate bounced lighting without direct one is way larger, I'd say. In specific scenarios this type of entity would be very nice to have, for example a very big area that needs to have a different ambient lighting color than any other direct lights (and their bounces) contribute.

Or, differently when a dynamic / static light gets toggled but you don't want a pitch black room when they are off.

Additionally an ability to turn on / turn off the bounced lighting (via lightmap pages) in game by firing inputs to this entity would be very nice, but it would be probably pretty heavy on the end user's pc as then most of the lightmaps would have to switch at once.

Note: It is possible right now to "fake" this entity by using an unnamed light_rt(_spot) with lightmode Static Bounce that has this output: OnUser1 > !self > Kill and then firing OnMapSpawn > light_rt > FireUser1 with a logic_auto. Although, a proper way to do this would be preferred.

TheEnderek0 avatar Nov 16 '25 12:11 TheEnderek0

Isn't this doable by doing like you said, a static bounced light, plus checking the "remove after compile" keyvalue?

craftablescience avatar Nov 16 '25 12:11 craftablescience

Remove after compile flag crashes the game (most of times at least) on map load with light_rts.

TheEnderek0 avatar Nov 16 '25 12:11 TheEnderek0

Check: https://github.com/StrataSource/Engine/issues/1413

TheEnderek0 avatar Nov 16 '25 12:11 TheEnderek0

Well if it worked, wouldn't it be a solution to this?

craftablescience avatar Nov 16 '25 13:11 craftablescience

As I've mentioned this is an awful hacky solution that probably shouldn't even work in the first place (and may cause problems in the future). Implementing this entity internally would require very little code change.

TheEnderek0 avatar Nov 16 '25 13:11 TheEnderek0

you can already technically do this by using a static_bounce light and setting the Initially Dark flag to true

lenship2 avatar Nov 16 '25 23:11 lenship2