To get around the weirdness of billboards, I elected to go with a system of what I call 'fakes' or 'impostors' for some reason. I've heard the term 'impostor' used before in regards to graphics programming, but I scarcely remember the context. It may have been an alternate term for billboards. At any rate, in AE2 an impostor is simply a very low detailed 3D model upon which is mapped the pre-rendered image of the object it represents. The model is constructed to roughly conform to the geometry of the object, and is textured so that when it is rendered in-game using AE2's orthographic projection, it appears identical to what it would have appeared had it been done with a standard billboard, but with the advantages of slightly more realistic overlap/intersection with other objects, and more elaborate lighting. As a very crude example, here is a stairway. (VERY crude; I still haven't gotten around to unpacking crap from the old Golem data archives, so I'm still using 5-minute slapped-together artwork).
The stair was modelled and rendered to a TGA in Blender:
(The screenshots are scaled down from 1024x768, hence the difference in size between this render and the screenshots.)
I then subsequently mapped it onto a simple 3 sided impostor like this:
The texturing was done so that when viewed from the angle of the game's camera, there would be no distortion or stretching of any portion of the texture, regardless of the underlying impostor geometry. The impostor was laid out on a representation of the level grid to align the vertices with level grid points, since these props extract their lighting information directly from the level grid. Thus, the lighting I can achieve is potentially more flexible than a simple billboard, with only a minor increase in complexity of the system. This is a simple example only; the advantages are better illustrated when larger prop objects are represented.
And, since the fundamental idea of impostors is fully based in 3D concepts, it would be just as simple to implement fully 3D props as well as these 'faked' ones--though I do not plan to make much use of such. The system is founded in my vertex-animated morphing mesh code, so animated props are simple to do. However, for the most part, animated props will likely be implemented using texture and/or UV animation, rather than vertex animation.
Attended another meeting of the IGDA last night. Good fun. I need to get off my ass and attend those more regularly. There are some good people that attend those meetings, lots of creative types and smart folks. We had a motivational pep-talk by one of the guys from Flashbang Studios that might as well have been aimed directly at me, being the lazy and unmotivated slacker that I am.