I'm creating a game that is similar to Tibia on its projection:
But I want it, under the hoods, to be 3D, and extremely dynamic - meshes generated on the fly, statues exploding and turning into smoke monsters, things like that. For that, I've created a renderer that isn't geometry based, but atom based - it takes a compact buffer of positions and colors and renders it to screen. It works extremely well and is quite fast. There is only one problem, lighting. To achieve realistic lighting, I must, for each atom on the screen, emit a ray that traces a volume, sampling among the way. If it hits something before the light, that space isn't lit. This is the end result:
I love that effect, but, on my machine with a low-end GPU, it can stand millions of atoms, but only 2 lights max. That is not enough, I'd need 16 lights at least. Each light requires dozens of samplings for each atom on scene, it is prohibitively expensive. Without global lighting, the ambient becomes flat and boring.
Is there any creative way to achieve the same effect, albeit less expensive?