Advertisement

Procedural tree generation

Started by August 19, 2009 10:41 PM
19 comments, last by emberintherain 13 years, 3 months ago
I'm looking to generate some sort of procedural tree [that hopefully looks good]. The method that I'm thinking of would start with a base. Then, along a line, a cylinder would be created for some distance (the first distance could be predefined, or it could be random). Then, the tree will branch off. I'm kind of confused as to how one would implement this branching off. How would the polygons near the joint look for two branches? three branches? n branches? Are there any papers on this subject that explain how they implemented the polygonal part of such a system?
I read a paper regarding fractal generated trees like this one some time ago. Unfortunately I haven't found it using Google. Maybe the URL can be a starting-point for you.

With best regards,
Kimmi
A complicate solution may indicate a not understood problem.


[twitter]KimKulling[/twitter]
Advertisement
The terms you might want to try and google are "IFS" (integrated fractal systems), "L-Systems" (Lindemeyer systems) and "procedural" - although you'll most likely want to look at IFS rather than L-Systems. These should get you started.
Quote: Original post by irreversible
The terms you might want to try and google are "IFS" (integrated fractal systems), "L-Systems" (Lindemeyer systems) and "procedural" - although you'll most likely want to look at IFS rather than L-Systems. These should get you started.
s/integrated fractal system/iterated function system/
s/Lindemeyer/Lindenmayer/

Why should IFS better than L-Systems? Last time I checked, IFS were great for creating fluffy fractals (excerpt), and L-Systems where just great stuff for creating artificial flora, and if you look at Aristid Lindenmayer's job, it's specifically biologist.


About L-Systems: Algorithmic Botany: Publications (at the bottom, you'll also find the free book "The Algorithmic Beauty of Plants", it's the reference on how to use L-Systems for flora).

L-Systems can even be used to create Architecture or whole cities.

One problem of L-Systems is that there is yet no known analytical method of transforming a given shape into an l-system (there exists a genetic one for parametric L-Systems: click; haven't checked the paper yet). Btw, for some motivation, have a look at xfrog, especially those collections.

For more techniques, have a look at vterrain's plant page.

Sidenote: Every programmer who is only slightly interested in terrain scenery should bookmark vterrain.org.

edit: While I am smashing urls, their newest paper looks damn sexy.

Thank you all (and especially the last poster!), you've all been very helpful with resources.


Now that I have enough for possibly a year of not more of just reading, I shall get started with L-systems, and paticularily "The Algorithmic Beauty of Plants". I wasn't expecting so many resources and research in this field. I think it may be a long time before I complete this, but at least the journey will be interesting.
Quote: Original post by phresnel
L-Systems can even be used to create Architecture or whole cities.

To be fair, the guys who did the best work with L-systems in architecture found that pure L-systems by themselves weren't enough for realistic city modeling, due to the difficulty of reconciling distantly related but spatially associated features. (Of course, the OP didn't want to make buildings, so I'm just being Mr. Pedantic here.)
Advertisement
Much better solution:
http://www.cs.duke.edu/courses/fall02/cps124/resources/p119-weber.pdf

Generates trees that actually look real, which L-systems etc doesn't.

Edit: changed link to downloadable pdf.

[Edited by - _swx_ on August 20, 2009 4:32:23 PM]
Quote: Original post by _swx_
Much better solution:
http://portal.acm.org/citation.cfm?id=218427

Generates trees that actually look real, which L-systems etc doesn't.


I don't have access to acm, nor am I willing to pay. I'll be going to university in a couple weeks, maybe they will grant me access?

And what specifically is bad about L-systems? I've read a bit of that paper already now.


The problem I'm dealing with is that they seem to be creating lines of which they have 3d representations of. How do they generate the 3d representation? Are they single meshes or just a bunch? (this was more of my question earlier, actually).

Okay, I've looked at it and it seems that they need a 3d representation of each "node". Do they just pile these on top of each other, or are they connected via the vertices somehow?
[html]http://blendernewbies.blogspot.com/2007/08/tree-making-tool-gen3.html[\html]

Coincidentally, I was doing tree generation too. This is the paper I am going to try to implement (the link to the original pdf is midway down the page)
Quote: Original post by gpu_fem
[html]http://blendernewbies.blogspot.com/2007/08/tree-making-tool-gen3.html[\html]

Coincidentally, I was doing tree generation too. This is the paper I am going to try to implement (the link to the original pdf is midway down the page)


Excellent! I think I will implement this also, it looks very convincing.

I'll still read some of the other papers as they are all quite interesting.

This topic is closed to new replies.

Advertisement