[Note that this patch replaces a previous one which introduced a new billboard type. I prefer this one because it doesn't require a new interface, or modifying any project files]
This patch extends IBillboardSceneNode in the following ways:
1. Add Axis Aligned billboards, and utility methods for manipulating them.
2. Expose billboard texture co-ordinates as well as colors, allowing for on-the-fly manipulation.
3. Allow trapezoidal as well as rectangular billboards (this is a personal requirement. ;) ).
4. Update the clone and serialization methods, adding support for vector2df in the various Attributes files. NOTE: this breaks backwards compatibility. I'm not sure how big an issue that is. If it's a show stopper, we can go back to declaring a new interface and class.
The change is otherwise backwards compatible; the default billboard configuration is a point billboard, i.e. the only type currently supported. Any of the unmodified examples that use billboards (e.g. 7 Collision, or the Demo app) can be used for regression testing.
Example 12, TerrainRendering, has been expanded to demonstrate various billboard uses.
Other things to test: manually enable setDebugDataVisible(scene::EDS_BBOX) to verify that the billboard bounding boxes are reasonable.
Outstanding issues: when two translucent coterminous billboards are also coplanar, sometimes one of them doesn't get rendered (or is rendered and then overwritten rather then blended). This happens with DX9, OpenGL and Burning drivers, so it may be an expected artifact.
Logged In: YES
user_id=1913801
Originator: NO
This as been implemented so far?
Logged In: NO
Not yet.
The suggestion from hybrid or bitplane (I don't recall which one) was to implement billboards with an animator, much as the new cameras are done. This would allow any node to align itself relative to the camera.
That makes sense, but I'm not feeling an overwhelming urge to do it. Feel free. ;)