Over the period of last month, I came across an interesting difficulty in lighting the scenes during beta testing in Blameless. For the development one of my specific visual requirements was using statically lit scenes with dynamic lights on top. This increased realism in light-and-shadow transitions and global illumination with indirect light.
Comparison: same scene with realtime lighting only (left) and realtime + static lighting (right)
The process of setting up lightmaps baking is quite straight forward in Unity, however I hit the wall with one of the gameplay requirements - ability to turn off/on lights. While realtime lights are supported in statically lit scenes, they won’t contribute to global illumination. This is prone to lighting artifacts and uneven light distribution across the scene when light is switched on or off.
Note: Although Unity 5 introduced realtime GI, which effectively solves this out-of-the-box, the visual results were merely not as good as with Unity 4’s lightmapping.
Comparison: same scene with static + dynamic lighting, each with different light switched on
For Blameless I solved this by dynamically replacing groups of static lightmaps to reflect the current light setup. Different sets of lightmaps, each with different light settings, are changed seamlessly on-the-fly as required by the underlying script.
While the implementation of this feature claimed some development time, I am very happy with the result. Thanks to this, Blameless can bring more interactivity, and changes in the mood and atmosphere.