Tree with connected branches

Hi,

I think there is no addon that creates trees with decent topology or connected branches, so I started to write one.

###################################
UPDATE July 15 2016:
The newest version:
addon_add_Modular_tree.zip (13.5 KB)

UPDATE June 04 2016:
Here is the Beta:
addon_add_Modular_tree.zip (7.89 KB)
Still in développement.
###################################

It’s very basic for now but this is the early result:

Let me know what you think about it, and feel free to suggest any feature to implement.

Attachments


4 Likes

Looking good. are you thinking in implementing controllable growth?

This is awesome indeed. Congratulations !

Do you mean control things like radius, branching probability, gravity strength … ?
You will be able to do all those things.

Hi there! nice work :slight_smile:

This looks very promising, The amount of retopology needed after creating tree meshes using add-ons is what stopped me from using them after a while. I just started box modelling/sculpting them.

But the topology of your tree looks very neat!
What is the average vertex count for a tree as detailed as the one shown in your image?
Also, Is the tree automatically U.V unwrapped?
Lastly, What would be the range of variation available for tree geometry? i.e - Would it be capable of producing geometry like the joshua tree or the socotra dragon tree? (Shown Below)

Joshua Tree

Socotra Dragon Tree

Attachments



I’m glad you find it promising.
The tree shown here has 700 000 vertices, and I’m thinking of ways to implement auto unwraping.
I guess it will be no problem to generate trees like the ones in your pictures, but pine trees will probably be more tricky.

wow, thats a lot of verts!! I guess it’s unavoidable when dealing with that amount of branch-splitting and also the Radius resolution (Looks like the trunk is an octogon?)

Do you plan on adding the capability of creating low poly trees? for use in things such as game engines, or low poly landscape scenes?

It would be nice to have a large range of detailing options, to allow for meshes ranging from very low to very high poly :slight_smile:

Also, and i know this may be a long shot, But is there any chance that you could add in an option to create roots at the base of the trunk? I have yet to come accross an add on that deals with root geometry :slight_smile:

The trunk is indeed an octogon. The tree I posted is pretty dense, there is 10 iterations of a 0.7 split probability, which means that there are approximately 700 branches in it. The number of vertices is thus proportional to 0.7 * 2^(n+1) where n is the number of branches iterations, meaning it rises pretty quickly.

However, such a branch density is not necessary. This is a screenshot of some trees with less iteration (the number of branches iteration is the number written minus 9, which is the length of the trunk):

The way the algorithme works yet allows me to make the trees more low poly by building trees with pentagons or hexagons.
Add roots also seems manageable.

I’ve only been working on this for the past two days, so it will hopefully get more complete, and I will soon have finished my exams so I will have more time to work on it.

Attachments


Briliant! The low poly trees still look great!

This really does look like it could be a great add on! Looking forward to following your progress :smiley:

I have a few more suggestions/ideas for you -

Automatic Vertex Groups, i.e - Trunk, 1st level Branches, 2nd Level Branches etc… Allowing for easy selection of the seperate levels of branching. (Usefull for hiding/selecting faces while painting/sculpting)

Simple Armature Option - I don’t blame you if you don’t want to undertake this one! I’m guessing it would be difficult and time consuming to code a solution? It would be great if the trunk and 1st level branches had armatures automatically, to aid with simplifying wind animations etc) Or possibly some shapekeys instead to simulate Wind sway?

Varied Leaf Geometry - This would be great, you could have your standard square, rectangle, and hexagon leaves… along with the option of more detailed leaves such as 4, 5 and 6 pointed leaves, or tapered oval shaped leaves etc :slight_smile:

Tree Health - This could be usefull for creating trees in delapitated environments. The more unhealthy the tree, the more missing/broken branches it has etc. This software has similar options - http://members.chello.nl/~l.vandenheuvel2/TReal/#programdesc (Along with a few other parameters that you might be interested in considering, i.e, pruning, leaf orientation and a few others)

Save/Load - You probably already thought of this. but adding a function to allow the user to store preset configurations would be great :slight_smile:
Also, maybe a few presets that come with the addon?

Also, i was wondering what your plan is in terms of a user interface?
is it something like, input all the values then the tree is generated when the user is ready?
or can the user modify inputs and see the changes real-time, and then decide when to finalize the mesh?

Sorry if you feel bombarded by all my suggestions! Hopefully your finding it usefull and not annoying! :smiley:

Let me know if its too much though lol

Thanks for all the ideas !

I never coded anything related to armatures, but I’m assuming it’s not a problem to rig the first branches iterations, however I have no idea on how to generate random animations, so if it comes it will be later. I think te leaves will be a particle system, because it is more easy and performance friendly. To create depleted trees you will just have to adjust the break probability ratio and the overall randomness of branches. The tree will be generated in real time as the user tweaks the settings. The response time is faster than I expected, around 10 seconds for the 700.000 vertices one, and 1 sec for the 100.000 vertices one.

I appreciate your interest and your suggestions, it is quite motivating !

Here is a heavy tree with some leaves and a bit of sculpting:

Attachments


Great work! Loking good!

I feel like the ends of the branches should have a denser population of leaves though, other than that it seems to look very natural :smiley:
Random animations wouldn’t be needed, i’m sure having a tree generated that is ready-to-animate would be more than enough! It’s a very difficult task rigging a complex tree with thousands of branches, at least it is for me anyway! :slight_smile:

I’m glad my suggestions are motivating you! i’m looking forward to testing a beta version of this!

The fractal-based design of these trees look a little too perfect and even at the moment, so as of now they have that ‘generated’ quality.

I would look at how the Sapling addon does trees in terms of the overall shape along with the layout of the branches (so we can have something similar with the smooth skinning).

@Ace-Dragon - Good eyes!

He’s right, it is kind of too uniform. More random variotion would make it look much better :slight_smile:

I’m not sure what type of fractal system you are using in your code, but perhaps some information in this article can be of use to you ( You’ve probably read into L-systems before anyway :wink: ) https://en.wikipedia.org/wiki/L-system

promising stuff.

I agree, the look still need work, but I think you started on a good path! :slight_smile:

Nice stuff keep going

@ oyster - This addon isn’t finished, so you couldn’t possibly know if it would be easier to do on one or the other yet.

Also, i notice that the one you mentioned it’s a plugin for lightwave? and the download is only a demo version, so it’s a paid plug-in? correct me if i’m wrong on that.

I can’t speak for others, but I would prefer an addon designed specifically for blender rather than a plug-in for other software :wink:

To prevent protruding and extra pruning: Plastic Trees: Interactive Self-Adapting Botanical Tree Models

I’ve added obstacle avoidance, and the split angle is now randomized. I’m working on auto unwrapping and more branch randomness

I’m thinking of a way to control overall shape.

Attachments


1 Like

Great trees!
Do you want to post code?