Trees? 🌳

With gltf alone you can’t introduce a dynamic system, but the minimum you can do is using 1 geometry per tree type and use instancing on them, though this is limited as you will always render all trees.

I automated this process by merging geometries, textures and materials into 1 for instancing, but you can also do this manually. Another reason i automated it was to preserve effects such as waving crowns in the wind even if it’s a single object like in this simple test with cartoonish trees.
https://streamable.com/2rjkfw

For distance yes, that’s a common technique, but for closer ones you want the 3D version, probably even different versions from simple plane crowns like in the video above to per fork or even single leave versions for the closest trees, creating the assets is the more complicated part.

I render the scene through an optimized spatial index with auto-instancing to still be able to cull anything that isn’t seen, as well as auto-impostors for billboards similar to what you described but preserving their 3D appearance by using additional g-buffer sprites or a volumetric rendered representation what gives the best visual result. Additionally, but that adds more complexity Tesseract renders large areas of trees in the third LOD simply on the terrain anymore as at some distance a single tree wouldn’t even fill a pixel on screen anymore.

DCC tools won’t give you a dynamic system, they can only export geometries, for creating them it’s a different story but there are specialized tools for trees.

What is your goal? This can be very case specific, like simple billboard trees for an real estate map viewer or a vast amount of trees for an detailed open world. I assume trees aren’t the mayor part of the project?

2 Likes