I made this tree last night, and started working on extending the collision testing system (which currently only tests for collisions against the terrain).
I do UV mapping in 3D Coat. You might notice that I didn’t map one of the branches at the top left properly.
Clearly, I can’t afford to test every collidable object for collision against 3000+ triangles in every tree. So I bound the tree by a sphere or rectangular prism, register that sphere/box into the collision grid, and test for collision against that first.
If an object collided with the tree’s box (shown in orange in the picture above), then I test against a lower resolution triangle mesh. The one shown has more triangles than I’d like. This mesh was just automatically generated by my 3D software’s “optimize” tool. When I have time, I’ll reduce this mesh by hand. The roots of the tree for example, will almost always be 90% underground, so testing against many triangles for the tree roots is unnecessary.