I don’t know enough to fully answer these questions. What I do know:
- I don’t think Babylon has area lights at all (I searched the docs, couldn’t find them)
- I think Unity only allows them to be either baked or used in the deferred renderer (not the forward renderer, which is what three.js has). Again, not 100% sure about that.
- Unreal docs warn that rect light for moving objects is slow. Presumably if you set the light to non-moving only they will bake it.
Real-time area lights are not really area lights, they are just an approximation. But it’s still a lot of work. You can see the code three.js uses here
It’s a lot of extra code that runs in the fragment shader, i.e. for every pixel, every frame. Perhaps someone will come up with a faster approximation than this, but they will never be as fast as the other light classes.
I haven’t benchmarked just how slow they are, but in the meantime, I’ve internalized all of this as a heuristic: area lights are slow.
In terms of speeding them up, the obvious thing would be to a baking workflow. But that would only help with static scenes.
By the way @baze, sorry for slightly hijacking your thread here. I hope you’re still finding this info useful.