There’s a few technical factors at play here, just like with anything, there’s limitations on how to use any software tools; if you can get a better understanding of the “why” it’s happening, you can make better decisions on how to use these things.
That said, the main thing you’re trying to do is light an interior with dynamic lighting only- correct?
If that’s the case, you’re going to have to play by some rules.
Dynamic lights use classic shadow mapping techniques, so the size and accuracy of the shadow map will be limited. Here’s some important things that play into the shadow map’s limitations:
- angle of the shadow receiving surface to the light’s vector (this is true for dynamic directional, spot, and point lgihts- but is VERY obvious with directional lights at steep angles/low elevations)
- radius of the light: this determines how much surface area the shadow map will have to cover, larger areas mean the shadow map (which is limited in size) has to cover more area, leading to lower resolution shadows
- default settings: shadows maps use default settings that are more optimized friendly, making them useful for most applications and target hardware. In some cases, like cinematics for example, you’ll want to increase your shadow map resolutions for problem lights, improving realtime shadowing
- object shadows: objects also determine their own shadow casting resolution; by default the resolution is balanced between performance and quality- but in some cases (i.e. cinematics) you’ll want to increase shadow resolution for some assets, for example a character or hero mesh, this usually alleviates the problems you’re specifically having
Here’s some tips for you:
- don’t make dynamic light attenuation radii super big (if it’s a shadow casting light), use the largest radius you can while obtaining the results you want. In most cases, you may have to come up with custom solutions for filling in the gaps- i.e. fill lighting. Professional lighting artists will usually create custom light rigs for environments, etc.- this is a limitation of realtime lighting pipelines in general, not an Unreal problem specifically
- don’t go increasing shadow map resolution all over the place, unless you’re doing prerendered cinematics or a product not targeted for realtime production- then feel free to crank all your shadow res up like crazy
- if you can, try to use a hybrid static/dynamic lighting rig for whatever you’re doing
- realtime dynamic lighting in production is really hard, so don’t feel too bad if you find it difficult; at studios we usually have dedicated graphics engineers that will modify the engine and add new features to alleviate these problems (obviously probably not an option for you, but just giving you a peek inside how pro studios work so you don’t pull your hair out thinking you’re doing everything wrong)
- use spotlights: point lights are very limited with their shadow map res for obvious reasons; try to use spot lights whenever possible to get best results
- avoid (shadow casting) point lights: whenever possible, avoid shadow casting point lights, they are super expensive and can kill perf when not used correctly. In production I usually disable this feature in the engine so that designers, etc. don’t accidentally place shadow casting point lights everywhere when grayboxing levels and kill perf (I’ve had this happen before in the studio environment and it’s a pain)
If you have any other questions, feel free to ask!