Original Post
I had a lot of free time on vacation, so I thought a bit about this. I have no idea if this has come up before.. but I haven't seen it. I've heard the suggestions of using lower detail models farther away.. and then eventually billboarding.. and I've wondered if there was another way.
Instead of using 2D textures for billboarding, why not use 2D vertex based models? These models would be flat, and would use very few vertices.. they could be generated before runtime or at runtime by flattening the tree model, breaking the flattened version into convex polygons, then removing all the extra vertices inside inside the shapes. This way, the minimum number of vertices needed to define the tree will be used while still retaining the exact shape of the tree at a given angle. Now, any number of these 2d models could be generated for all the different directions the tree could be viewed at (and they would be much much less expensive than full sized bitmap images). The cool thing about these would be that the transition from one viewing angle to another would be fluid, as you could interpolate the vertices between the two states (though it would be linear, more angles (or circular interpolation?) could be added to increase realism.. and decreased at distance). Though i don't foresee any problems with the interpolation.. it might not work as well as I think (getting vertex ordering to look right during transition may be a pain).
As for the foliage, i think it could be drawn in the lower LOD mode as it would be in the higher one, just without as much detail.. i don't think it would look very good when this applies to it.
As for texturing? I'm not sure. I guess the quick hack would be to apply a texture that looked good, and then applying it with constant world space coordinates (enviroment mapping?) as opposed to object space. This would increase the realism of the illusion of the tree as you turn around it..
Of course, this would only be used on distant trees... but i think it's a viable solution. Anyone else see some glaring problem with it? I can imagine the implementation won't be quite as easy as the explanation.. but i see no reason why it can't be done. Any other pros/cons i have missed? I'm just interested on your input.. please discuss.. and be gentle
.
BTW, Sorry if this is a well known concept or anything.. if it is, just say so and i'll move on (or point me to some papers.. i'd be interested).. i just haven't seen it
Disclaimer: "I am in no way qualified to present advice on any topic concerning anything and can not be held responsible for any damages that my advice may incurr (due to neither my negligence nor yours)"
Disclaimer: "I am in no way qualified to present advice on any topic concerning anything and can not be held responsible for any damages that my advice may incurr (due to neither my negligence nor yours)"