Shadow Volume is too heavy technique, which depend on performance of CPU(I don't know if GLScene provide calculation of shadow volumes via GLSL) and require a lot of fill time. So, if your city is big, there is no way to make render faster. But if GLScene doesn't clip invisible buildings, and trying to calculate shadow volumes for them, you can try to optimize this is by clipping invisible buildings yourself.
If there is a Shadow Mapping technique in GLScene, try it instead of Shadow Volume.
Bookmarks