How does one light Terrain with (too many) mixed lights

Hi, does anyone have any concrete experience with lighting larger areas and terrain with lights that should interact with dynamic objects?

I am working in URP, 2022.3, and using the native terrain tools. At the moment, I am trying to light a large area in a night time village scene. I want lights to interact with characters ofc, so I’ll be setting them to mixed.
Now with the limit being 8-lights per object, I QUICKLY run into problems where lights start turning on and off… I have no control over which lights are prioritized so far as I know, so how does one cope with such a situation? It’s a little silly to me how I am viewing 5 lights on the screen, but it’s decided that half of them should be turned off in favour of ones that are outside the screen (mind you all of them are lighting the same piece of terrain and there’s a limit of 8/object etc). Is there a way to work around this issue entirely, while retaining real-time shadow casting onto other static objects?

I’ve tried setting the light mode to subtractive, but much like baked lights this results in a lack of shadows from streetlights and such. Baked shadows do look kinda meh and not at all accurate when applied to dynamic objects with light probes — but this is probably the best solution considering there are quite a lot of lights around the village.

Shadowmask works great and is simple enough until lights on screen suddenly is culled by the engine.

Baked Indirect has thus far produced the best results in my opinion, but still only does real-time direct lighting which is capped at 8 and not handled well enough.

Real-time lights ofc come with the on/off issues — but they’re not really an option anyhow considering the amount of real-time lights there would end up being.

There surely must be a way to work around this issue? Or do I need to chop up my terrain into tiny pieces? Ideally, I suppose, I want real-time direct lighting to be substituted by baked direct lighting? I am willing to accept some compromises but still…

You need to use deferred rendering instead of forward. Deferred allows for more realtime lights for your mixed light use case.

I prefer to manager my lights for large open worlds manually by turning them off directly with setActive when the player is far away from them. This would be most applicable to a night time scene with lots of street lights.

Edit: sorry I just re-read the last part of your post. If you have a large terrain or huge game objects including meshes, as terrain can also be meshes…you should lower the lightmap scale resolution for the huge objects if you want everything baked. Also make sure you use light probes for your dynamic objects in the scene if you have them.

Also, more than 8 lights on a game object is overkill in the 3D or irl for photography, motion pictures etc. If you have a lot of point lights, adjust the distances of those lights to only what is needed.

If you have a situation where you need tons of little lights together like lots of little light bulbs on a marquee sign or something, then you would just use a couple of point lights around the sign, and then make the light bulbs emissive materials and use small amount of bloom on your post processing effects stack. You could also have those materials contribute to GI, but it might not be a good idea for too large of a level.

Generally speaking, the larger the level, particularly for open worlds, realtime is a more realistic path, otherwise that’s a lot of lightmapping and/or low quality baking to make up for the massive size of the level.