Open Maxopoly opened 4 years ago
There are many ways to generate random trees, and it seems there are many attempts fleshed out in open source code across the internet.
L-System trees have been cool in non-voxel tree generation, and it seems Minetest has used them to surprisingly good effect: https://dev.minetest.net/L-system_tree_examples https://dev.minetest.net/minetest.spawn_tree
Minetest also had a mod which implemented a different but well thought out approach to tree generation in Lua, with wisdom about tree placement as well: https://www.reddit.com/r/proceduralgeneration/comments/2t2dyy/trees_in_minecraft_like_worlds_help/co2kv1k/ https://github.com/minetest-australopithecus/minetest-australopithecus-utils https://github.com/minetest-australopithecus/minetest-australopithecus-terragenitor
The same guy also spoke to Veloren devs recently about tree generation (which currently places premade models) meaning we could probably get him in the Civtest server at least: https://www.reddit.com/r/Veloren/comments/9qnsty/improving_mountains_surface_gradients_and_tree/e8b6el3/
A simpler procedural tree generation showcased here seemed interesting, though I am less happy compared to the Minetest trees: https://github.com/mgerhardy/engine
Another procedural algorithm based around trunks, branches but which also didn't create desirable trees: https://github.com/tyronx/vintagecraft/blob/master/src/main/java/at/tyron/vintagecraft/WorldGen/Helper/DynTreeGen.java http://vcraftwiki.striver.net/wiki/List_of_Trees
CubeWorld does trees by randomly generating features at certain heights of the tree, and I like the results:
I'm inclined to seek input from Bobby_Bonsaimind and Rube of Minetest about tree generation and report back afterwards.
For generating random trees, integration into the existing code could be done by me if needed.