Real-time Impostoring        

Author: Paul 'Tuan Kuranes' Cheyrou-Lagr├Ęze
Project: External Project (Tuan Kuranes's site)
Type: OGRE Library
Supported Platforms: Linux, Windows
Documentation: Tuan Kuranes's site
Sources: Tuan Kuranes's site
Binaries: Tuan Kuranes's site
Status and bug reports: OGRE Forums Thread

Ogre implementation of dynamic impostoring + texture Packing

Little changelog
- changed exact screen-space LOD to distance LOD + screen space (much, much faster).
(Need Tweaking or Per Object pass to determine best LOD...)

Todo :

- Handle multiple camera, camera reflection, camera FOV, etc...
- Find a way to make the alpha transition works in all case (including on Movable Objects with shaders) and make use of alpha_rejection to prevent gray borders ?
- Adapt alpha rejection to mesh displayed (should use lowest alpha reject or user specified ?)
- Better handles of camera updates (detect roll and yaw)
- Load Balancing Imposter Regeneration (trying to make most update in the minimal amount of RTT at a time.)
- Normal mapped impostor (depth map capture=> normal map+shader or/and billboard being depth sprite)

- Handles non-square impostors (need to change texturespace quadtree to something else.) or even support for arbitrary texture resolutions for impostors. or use the bsp tree texture packing using in "billboardcloud" google soc project.
- Does not account for changes in orientation of the 3D object, for now user has to manually call 'uniqueimpostorhandler->makeimpostor().' Same for Lighting and object animation changes.
- Use max render texture size and max texture unit (and make billoardset supports multitexture)
- Update the RTT once instead of per Texture Space, but that means one camera and viewport by TextureSpace (could be huge fps boost whe updating lots of impostors, but at large memory price. or not...)

- a forest Demo using trees...

Alias: Real-time_Impostoring