OBese - that's slick.
Bergice - And others reading this... TDK Is right but I recently have been doing some tree research myself and have not SOLVED my issues but I'm on to a solution I HOPE!
These are IDEAS to consider nothing more. (I'm considering them LOL)
1st: Many Objects? Rendering? Can get SLOW! Learn Frustrum culling, and to get started - try to implement the OBJECT IN SCREEN function - its not perfect but the idea is HIDE object if its not IN SCREEN. This helps frame rates.
2nd: Many Objects sometimes (forget rendering) can slow down the code. CONSIDER Making an object that is made of OBJECT-LIMBS. (Must be clear are dicussing tress) where EACH OBJECT LIMB is a COMPLETE tree. Now the idea here is to get maybe 30 trees randomly positioned in a smaller area kinda... but its REALL ONE OBject.
(Making long trunks and random tree heights would make placing "into a hill easier" but you would want these limbs to match terrain height of where they will sit ideally.)
By having multiple trees in ONE object - easy (faster) to hide them all at once if you want, also I think better to have 30 objects (with limbs..each for their part in the world) then 500 objects scattered about or whatever.
3: Combine these techniques - especially because of the kind of thing OBese descirbed. Need a cluster of trees? Then the limbed object (many trees in one object) might be the way to go. Need a tree in the middle of no where? Just toos an object.
I don't know a perfect solution and I'm fighting this one myself HOWEVER I think these ideas have merit.