So after a long weekend of playing catch-up with some game research I was inspired to try and figure out how Just Cause 2 handled their foliage. If you haven't played the game, basically its a massive open landscape with no noticeable loading (outside of LOD switches). The trees look amazing. They are thick and lush and don't choke your frame rate.
 
So after playing close attention to the billboarding nature of the foliage textures (look at the trees from the bottom directly up) I got an idea, well its really their idea (assuming this is how it was done), if not, credit is all mine (well Mike's).
 
What I am experimenting with is using dummy objects (in my case bones) and laying them out all across tree branches and then calling just the one branch.opr with the texture and attaching it to the nodes. This should theoretically greatly limit the time it takes to cache the textures (as I am caching just one, instead of a bunch of planes all over the tree).
 
 
 
 
I'm working it in two LOD stages at the moment low (5 nodes) high (10 nodes). The 5 node plane is much larger (so it can cover the whole tree branches). The 10 node is more “standard” size for tree branch/leaf texture. The geometry is then billboarded (so it always face the player camera). So on my low LOD I basically have a nice distance tree with a ½ dozen or so unique planes using just one billboarded piece of geometry spawned all over the tree (well 5 nodes at least).
 
The low LOD test came out pretty good I can't wait for next week so I can try it with some quality art. I think this could change the way I do foliage forever.
 

 
 
Have a great weekend GameCore,
~Ross