I want to add lighting to an isometric game that I'm working on.
The closest I've come so far is to do a pass over the blocks on the floor and build up a light intensity matrix (based on how far each one is from the nearest light source). Then I've been rendering that with overlay compositing enabled.
This sort of works as a rough prototype, but there are some problems and I don't know whether they're inherent limitations of the way I'm storing the scene.
The floor blocks are stored in a 2d array and the world entities are stored in a list with their own 2d coordinates and height.
That means that if I overlay a light map like I did in the example earlier, the shadow only covers the tile. Entities on the tile are only partially effected by that tile's light value.
Here's an example where the blue tile is the overlaying light tile without blending turned on.
If that character was at the edge of the map, the top half of their body would be unaffected by the lighting.
I could trace rays out through the scene and mark the colliding faces with lightness values, but at that point, I'm not sure how I'd actually render that lightmap onto the screen.
How can I construct a light map that can be rendered over this scene?