I Dream of Treemakers

Also you should talk to RipSting regarding Fiber 3.0

things he needs to do such as hair placement and density are the same things you’ll need to accomplish for doing large scenes with lots of trees.

My thoughts are to vertex paint with the colors assigned to the following

  1. tree density
  2. tree size/age
  3. tree type

he has also tackled things like generating limbs based on a spline (needed for generating each hair, etc.)

Anyway see this link

https://blenderartists.org/forum/viewtopic.php?t=30666&highlight=fiber

Tom M.
LetterRip

Another useful feature that I’ve seen elsewhere (thought it was Hash Animation Master but I can’t find it now)

Using bounding boxes or surfaces to constrain growth.

Basically they can act as either a force field (the boundary object turns the direction of growth away, such as a tree growing next to a wall), or as a trimming tool( all braches that touch the surface are either removed entirely, or alternatively just pruned…)

LetterRip

Any word on progress? Have you had time to read through some of the references?

LetterRip

It’s so frustrating to see something really useful … the designers getting really excited … sample screens … feature requests … then … nothing.

Beast, Fiber, etc. I know that people have lives (I don’t it would appear), but it seems that so many scripts just “burn out” before they’re released.

I have faith in Fiber and Beast … I think these scripts will make it to a stable release. I hope :wink:

Hey I’m glad to see people are interested in the project! Sorry about the silence…yes, I like to think I do have a life. :smiley: Things are coming along pretty well, but nothing I want to show yet. I have read through just about all LetterRip’s wonderful references, some of which I had seen before. Some of the holdup is waiting on the BPython API to enable bezier curve creation(specifically triplet creation).

Current approach is to control each branch with a bezier curve which can be directly edited (within limits) by the user. These curves are skinned by a mesh according to certain parameters (i.e. thickness, etc.). Several of the parameters can be changed by dragging empties in the 3d window to allow easy/fast editability.

Upcoming challenges include making my mesh “skinning” algorithm so it can handle multiple branching in a small area while still creating a smooth mesh. Intersecting cylinders (like in L-system) are ok for trees at a distance, but not up close. Any ideas?

Future plans are to have a forest function. I think it was LetterRip who had the idea of letting vertex colors control things like density, age, and type of tree. Key to this will obviously be having TreeGen have its own LOD engine so scenes are manageable since trees are normally so vertex-heavy. I need some ideas of how an LOD system could be implemented well with BPython. Obviously part of it will be removing smaller branches and reducing leaf count. Has anyone done anything similar?

Coding help is needed for a possible bark texture plugin (see LetterRip’s linked article above on Bark Synthesis). The current wood texture in blender can be quite powerful when used correctly, but the problem comes down to mapping it accurately to a tree. Any proposed uv layouts? Any other recommended methods?

Thanks for everyone’s help and input. Hopefully I can post an image soon of my progress.
—bydesign

Malefico is very right,

scripts do not get you lazy

and L-system desperately seek maintainance. THe GUI really need to be rewritten, in tabbed format (As in BWF and BAG hint hint) to unclutter the screen and allow easier usage

Stefano

I’m sure you already know of this … but here is the link to a gui creator:

http://www.restorides.com/~nerd/gui_creator.py

what about hacking the horn script? you could literally draw the branches and roots then if the right methods of hacking were used you could take the curve used in the script (the one that makes the horn mesh) and allow for a copy of it to be made so that you can duplivert leaves! sounds about right to me!?

Hey Prince nice to hear from you.

Anyway…I need some coding help with this project…I posted the problem at curve skinning question (vectors & matrix math), so if anyone can help I’d appreciate it!

bydesign

Haven’t checked, but is your matrix multiplication order correct?

That is one of the most frequent causes of getting a matrix with incorrect rotations.

LetterRip

I don’t know which way is correct actually, so that’s obviously not the problem. Right now it’s rotation * translation * previous. But depending on where the curve is going this is just as wrong as translation * rotation * previous. It’s really hard for me to tell what’s going wrong, but doesn’t appear to be that. Good thought, though…I ran into that earlier.

My second suggestion would be to try using quaternions and see if you still have the problem.

LetterRip

I was recently fooling with pov tree. it has a really interesting approach, if anyone wants to check it out, it may provide some ideas.

Hey Modron,

I have limited time on my hands, and I’m not a big povray guy. It’d be really helpful if you or someone else who’s into povray could play with povtree and perhaps make a list with descriptions of the features that you like about how it works. Any other tree generators feature sets would be helpful too! (i.e. tomtree, maya, xfrog, etc.) I’ve briefly looked at many of these…but it’s one thing to look at a program, it’s another thing to find out what users think are helpful features.

bydesign

I recently looked at x-frog too,…it seems to be based on quite alot of predefined meshes and textures, which is not a bad idea. it has a major downfall though, which is that everything it makes is extremely high poly. i think a major consideration needs to be not too get to extreme with the polys, so it is practical for raytracing and animation. One system that isn’t actually for making trees, but I really like the interface of is plant studio.
<edit> I wonder if there might be a way to use the static particle system and the 8th texture channel as a way to define branches.

hi

been playing with arbaro.

just 2 hours.

Looks really good…the advantage of povtree, which I have also used now to test, is that povtree generates uvs.It’ s a royal pain to generate UVs , at least good ones and using well th ewhole texture space if like me, u want to use a shared UV for all leaves, so that it fills a 256x256 uv space.

Well, I have got an arbaro model uv mapped this way, using a combination bewteen Ultimate Unwrap (comercial, but i bought it way long ago) and Wings3d Autouv . (similar to lcsm in blender)

I know the settings to get it now, but I’d rather prefer to use povtree just because it generates the uv mapping, as for what is mesh generation I like a lot too Arbaro… Sadly, seems Crossroads3d gives error on importing the *.inc povray file, and the author of Povtree has disabled OBJ export as that’s gonna go in comercial version…clever move… :wink:

BTW, with Arbaro+Ultimate Unwrap+wings I can do the stuff. I have noticed (uncheck smooth in export of OBJ!!) that when u know well arbaro’s settings u cad do it as low pol as you wisyh, and as hi pol and organic, as you wish…

with arbaro you can :

-set the leaf resolution
-leaf size, leaf shape, leaf proportion
-density of leaves. distribution of leafs , orientation to light of leafs
-curvature of trunk, with two values and some parameter to make variants. Of also the several levels of branches that u set, with othe rcurvatures. Ability to make it in spiral
-trunk lobes (this adds loads of polys, I prefer do that in texture: actually I prefer to modify the trunk in wings, and weld the trunk to level1 branches, I hate how xfrog (seen the public trees) and arbaro do it as separate meshes, just burried in th etrunk, don’t like it so. That’s why I prefer low mesh, weld in wings, subdivide, but after is uvmapped.)

-angle of lots of crazy things, between branches, etc, distribution of branches, other random seeds, …

Lots and lot more.

I really have liked it.

I was pursuiting such a rather low poly thing, while the leaves and all mid-upper place, be hi poly for game engine paralax slides, a trick done by the engine, it actually pre-proccess the hi poly, later on is just some quads with the hi poly version “baked” , except the trunk.Quite clever coding idea, imho.

So, in bellow shots u’ll see very low poly trung and branches, even leaves, as just did not want a 32 mb file…even so, I could have even made a 1,400 tris trea, quite easily :slight_smile:

IMHO, is a pitty Arbaro does not have UV generation, but anyway, I’ll manage, uv mapping is something one way or the other I allways end up doing in Ultimate unwrap and or wings…

http://picserver.org/view_image.php/V008U3BSA42M/picserver.jpeg
http://picserver.org/view_image.php/472YQL5GF3W5/picserver.gif
http://picserver.org/view_image.php/F11630E96T1N/picserver.jpeg
http://picserver.org/view_image.php/BVZVF358Z9M9/picserver.jpeg
http://picserver.org/view_image.php/2WL0IF3CC5F5/picserver.gif

byDesign: ya it has been awhile…glad to see the master is still at it! :wink:

well…i think that with BLender2.35 and the new taperobj this tree thing is a piece of cake! all you have to do is a have a few presets for drawing curves and bevobj and then a few different sines and waves for taperobj and adding leaves is nothing more than dupliverts with rotate on them…sure scripts are nicer but this might help get some understanding of how the script should work!?

I’m just brainstorming…i’d love to script but am still learning! i just got script links down … %|

hey arbaro looks very promising! awesome stuff they present on their homepage.

@Modron:
why not forget a plain blenderplugin and aim for an importer script? since arbaro is opensource everybody could use it.

the fact is that arbaro’s OBJ output already works in every of my OBJ reading tools, indeed. So , probably doing an importer (in fact: it’s done, by a blender user, he has made one for povtree, one for every tree maker out there…:wink: ) would be surely working twice…

My main problem is the UV generation.Is an old problem. I played with other way older -not available now- tree generators, and same problem, way long ago.

The fact is I can’t code in java(nor in other language), but arbaro is open source, and I guess…probably would npt be that hard to add just that the original leaf shape that generates it all would have a plannar or normals based(but connected) uv map, and that the intial trunk and branches cilinders would have some sort of cilindric mapping so that it gets deformed as the geometry deformes and evolves…

That’d be cool.

Jpatch spline modeller, was testing the other day, and u can build a trunk
there quiet easily extruding splines, and it generates some uvs, though distroted when u distort the mesh.

Other than that, I have allready made trees with arbaro and uv mapped them very quickly with external tools, is a way to go , already :slight_smile:

maybe just at the end of all is…curious as improving Blender areas like UV mapping, (even more, seen that lscm video and got really impressed, it has some serious advantages over Autouv) could cut the problems with things like not having uv mapping support in arbaro… (is there a pack uvs function in Blender?)

As I said, the mapping per leaf is the complex thing, most of all to make them all coincident in same shape and direction, sharing all same leaf shape. the way Xfrog does automatically.

BTW, I had thought of mailing the Arbaro’s author to ask him if there are any plans soon of adding UV mapping, but I’m so happy with the tool I don’t want to disturb him…If someone has done so, please I’d like to know…

I may have a deeper look at Blender’s uv mapping, as I seem never to have enough uvmapping tools, each time you have a different need…

yeah that’s not a bad idea, but if i’m not mistaken, arbaro only exports POB, which can be read by, well, nothing. you might ask jms though he wrote a plugin to import trees from ‘arboretum’ which is another pov related thing i think.