... speaking of trees and grass

Jon

24-10-2005 21:14:14

My experience with trees and grass in the source distribution has raised a couple of questions.

What is the proper way to implement trees and grass? If someone wanted to make a forest area with PLSM, a lot of trees would be needed. How does one do that without killing framerate?

What went wrong with the trees/grass in the source dist? I'd like to avoid having that happen again, and am not sure what really did occur.

Is .scene supported by PLSM2? I saw conflicting information on this.

Are meshes like trees/grass/buildings etc paged with the terrain? Or will they consume resources all the time.

tuan kuranes

24-10-2005 21:21:23

cvs demo tree and grass are very badly used and optimized (huge number of tris, no LOD, no far distance culling, per page loading), so do not that take as an example. It is used on my side for heavy Occlusion Culling tests.

Forest should be a special case using lod and impostors. some games makes a forest sort of boxes on long distance (operation flashpoint) or other uses advanced technique (look for that http://www.antisphere.com/Research/Forest.php )

.scene is not supported, you would have to patch plsm2 for that.

You decide of object paging, tiling, using the terrain listener which sends you events (tileload, tileshow pageload, etc...) to use just for that

Falagard

24-10-2005 22:00:07

I also will be implementing trees and grass into my framework that sits over top of the PLM2. Some info about the framework can be found in this thread:

http://www.ogre3d.org/phpBB2addons/viewtopic.php?t=50

Basically, I'm creating a tree rendering and LOD system, and use billboards after the trees are far enough away - not impostors as tuan mentioned. Imposters are excellent and I'd like to get them working, but I still think that they'd just be one of the LODs and the final furthest LOD would be a billboard.

Anyhow, the framework uses a system where the nearest page(s) have entities on it that are attached to standard scene nodes, but entities on further pages are converted to static geometry - meaning instead of having thousands of scene nodes and entities, they have one scene node with one large vertex buffer for each shared material, and trees at this distance will be billboarded with a vertex shader for oriening the billboards. I don't yet have a fallback plan for cards without vertex shader support - either they'll have to not display distant trees at all, or will have to use really low resolution meshes instead of billboards.

As for grass, I'll be implementing grass as well in the near future.

Clay