StrandTree - Ice Procedural Tree Generator

Plugins linking to this thread: (hide)

Strand TreeAuthor: Fabricio Chamon
Updated April 2014 with a fix by Hans Adrian for Softimage 2014+. Strand Tree is a set of ICE compound nodes that allow the creation of plants and trees. See the author site / the si-community discussion for documentation, example scenes and videos.

Emitters: Emit Branches, Emit Leaves Grow Control: Even distribution grow, Random distribution grow Modifiers: Modify Branch Color by Iteration, Modify Branch Width by Iteration, Modify Particle Size by Iteration, Modify Value by Iteration, Modify Value by Normalized Strand Segment Debug: Debug Iteration Strand Effects: Deform Tree by Curve, Surface Grow Rendering: Tree Visibility Options, Use Geometry Branches Presets: Basic Tree, Pine Tree

Hans' interesting explanation for the Softimage 2014 fix: [..] I moved the »set data« node to outside of »Add point« node on creation. This is because whenever there is a »Add point« node, the custom attribute stored in points may be reset. This was the case with »self.__strandTree_NumBranchesPerIteration«, which was reset to 0. It caused division by 0 in »Even Distribution Grow« node and thus the whole compound does not work. To work around this, we need to set the custom attributes in per Object context, instead, so that those attributes will not reset when there is another »Add point« node.

Available: Softimage ICE Procedural Tree Generator, ICE Procedural Tree - Surface Grow and Tree simulation - wip.

local backup: StrandTree.xsiaddon (fixed version)

fabricio.chamon
Posts: 94
Joined: 09 Jun 2009, 23:47

StrandTree - Ice Procedural Tree Generator

Post by fabricio.chamon » 04 Apr 2010, 10:15

download link: Strand Tree Compound Pack

edit: If you are using Softimage 7.x version, please update and reexport the "Emit Leaves" compound. it's using the "Point Index to Location" node that only comes with softimage 2010 version, but this can be replaced with the "ID to Location" node inside the compound, like in this image: emitLeaves_Fix_xsi7.jpg


videos:

Building a Tree


Surface Grow


Tree Dynamics - WIP


16 compounds:

Emitters:
- Emit Branches
- Emit Leaves

Grow Control:
- Even distribution grow
- Random distribution grow

Modifiers:
- Modify Branch Color by Iteration
- Modify Branch Width by Iteration
- Modify Particle Size by Iteration
- Modify Value by Iteration
- Modify Value by Normalized Strand Segment

Debug:
- Debug Iteration

Strand Effects:
- Deform Tree by Curve
- Surface Grow

Rendering:
- Tree Visibility Options
- Use Geometry Branches

Presets:
- Basic Tree
- Pine Tree

(all of them located under Tasks Tab > "Strand Tree")

more info at: http://iceduous.blogspot.com

Cheers,
Fabricio
Last edited by fabricio.chamon on 28 Apr 2010, 06:26, edited 3 times in total.

User avatar
Hirazi Blue
Administrator
Posts: 5107
Joined: 04 Jun 2009, 12:15

Re: StrandTree - Ice Procedural Tree Generator

Post by Hirazi Blue » 04 Apr 2010, 10:56

Very nice!!! :-bd
edit: I've moved this thread from "Announcements" to "ICE Compounds", now that we host the file ;)
Stay safe, sane & healthy!

User avatar
Hirazi Blue
Administrator
Posts: 5107
Joined: 04 Jun 2009, 12:15

Re: StrandTree - Ice Procedural Tree Generator

Post by Hirazi Blue » 06 Apr 2010, 09:29

Just saw this on the XSI Mailing List and went ahead and placed it on the si-community server also: strandtree_quickguide.pdf

@fabricio - I'll remove it, if you don't want too be hosted here, obviously...
Stay safe, sane & healthy!

fabricio.chamon
Posts: 94
Joined: 09 Jun 2009, 23:47

Re: StrandTree - Ice Procedural Tree Generator

Post by fabricio.chamon » 06 Apr 2010, 16:24

cool! thanks a lot Leendert.
I was not aware of the file upload filed on the post form, lol!
that's why I didn't posted it here, because I didn't want to spam the forum with links that open ad windows...
now that I know it exists, I'll upload some more images, scenes and presets I have here.

User avatar
Hirazi Blue
Administrator
Posts: 5107
Joined: 04 Jun 2009, 12:15

Re: StrandTree - Ice Procedural Tree Generator

Post by Hirazi Blue » 06 Apr 2010, 17:08

Files too large to attach, for instance "StrandTree 3.1" :D , can obviously still be sent to
"upload [at] si-community.com"
Stay safe, sane & healthy!

User avatar
Maximus
Posts: 1104
Joined: 09 Jun 2009, 15:45

Re: StrandTree - Ice Procedural Tree Generator

Post by Maximus » 06 Apr 2010, 21:25

this is a fantastic toolset, thanks a lot for sharing, incredible work, its stable and fast, i'm having so much fun with it :D
again, thank you!

fabricio.chamon
Posts: 94
Joined: 09 Jun 2009, 23:47

Re: StrandTree - Ice Procedural Tree Generator

Post by fabricio.chamon » 07 Apr 2010, 17:11

Here's the Ivy scene for you to experiment with, as showed on the vimeo surface grow video.
note: the statue model was not modeled by me, it's a free model downloaded from some website. for more info check the "copyright" annotation property under the object inside the scene.

Image

Get it here: StrandTree_Ivy

User avatar
Hirazi Blue
Administrator
Posts: 5107
Joined: 04 Jun 2009, 12:15

Re: StrandTree - Ice Procedural Tree Generator

Post by Hirazi Blue » 07 Apr 2010, 17:35

I've got a strange feeling an attachment is missing... ;)
Stay safe, sane & healthy!

fabricio.chamon
Posts: 94
Joined: 09 Jun 2009, 23:47

Re: StrandTree - Ice Procedural Tree Generator

Post by fabricio.chamon » 07 Apr 2010, 17:50

Hi Hirazi,
the attachment is about 1.3mb, so I sent the upload request to upload [at] si-community.com, like you said earlier.
could you check if the e-mail has arrived please ?

User avatar
Hirazi Blue
Administrator
Posts: 5107
Joined: 04 Jun 2009, 12:15

Re: StrandTree - Ice Procedural Tree Generator

Post by Hirazi Blue » 07 Apr 2010, 18:00

It is done... :ymparty:
Stay safe, sane & healthy!

fabricio.chamon
Posts: 94
Joined: 09 Jun 2009, 23:47

Re: StrandTree - Ice Procedural Tree Generator

Post by fabricio.chamon » 07 Apr 2010, 20:18

thanks!

tomalc
Posts: 16
Joined: 27 Apr 2010, 18:24

Re: StrandTree - Ice Procedural Tree Generator

Post by tomalc » 27 Apr 2010, 19:02

Hi,

First I'd like to thank you for your work on these compounds, they produce really nice trees !

I'm trying to optimize the result, playing with Shape Resolution U & V mostly.

But now I'd like to switch to segment shape for the last iterations so those little branches are rendered with a simple Hair_Renderer shader.

I can switch the shape from capsule to box, but when switching to segment, those iterations don't render.

I tried this :

if state id > n :
-shape = segment
-branch width = branch width * 100 (to match the result from mesh to hair)
-set data self.StrandTree_isHair = true (bool attribute used in the render tree to switch a to Hair_Renderer shader)

I made a test on a simple ice Cloud and it works, but digging in your compound is not as trivial ;)

Do you have an idea why it doesn't work ?

anyway thanks a lot for sharing this !

thomas

User avatar
rray
Moderator
Posts: 1774
Joined: 26 Sep 2009, 15:51
Location: Bonn, Germany
Contact:

Re: StrandTree - Ice Procedural Tree Generator

Post by rray » 28 Apr 2010, 00:22

Fabricio, this is impressive---Thanks for sharing, this is really fun to use!

I noticed that you can add a few more levels of iteration by putting a "modify value by iteration" into "strand resolution" of "emit branches" .This reduces segment count for shorter branches. Use the default curve, and your original resolution value for the "value" in "modify value by iteration"
(Thomas , I think this is what you meant with "playing with Shape Resolution U & V")

I could add 2 more levels of iteration this way :
tree.jpg
tree.jpg (195.11 KiB) Viewed 4302 times
softimage resources section updated Jan 5th 2024

fabricio.chamon
Posts: 94
Joined: 09 Jun 2009, 23:47

Re: StrandTree - Ice Procedural Tree Generator

Post by fabricio.chamon » 28 Apr 2010, 06:19

@Thomas: Hi, this is very strange, I couldn't get to work either. How did you tested this on the simple ice cloud ?

I tried to achieve this with 3 scenarios:

1) point cloud with 2 "add point" nodes, one with particles set to: shape=cylinder, size=0.1 and another with: shape=segment, size=10. Both have a "Create Strands" node connected to the "on creation" port. Right from this simple setup I'm not able to get the segment to render if the first particle has a shape other than "segment" itself or "point".

2) same as above, but the shapes are both cylinder (different state_id on each add point node). From this I did like you: if state_id greater than x, change shape, size and strandsize. interesting enough, this gives me inconsistent results for each of the comparision types:

- equal to, less than, less than or equal to - WORKS
- not equal to, greater than, greater than or equal to - DOES NOT WORK (only the cylinder strands show up on render)

strange is that the viewport is changing correctly, but the render is not.

3) using emit from source instead of add point node, to check if it was something related to init attributes set inside the emitter compound, then doing the same "if state_id = x ...bla bla bla" as before. result: same inconsistency with the comparision node. this is really weird.

SOLUTION: as it looks like a bug, the only solution I've found is to get a second point cloud, plug clone point node (source=first cloud, target=self, delete source if cloned=true), and do the if statements you like to enable the cloning. this worked fine no matter what comparision type I used. attached a pic showing the ice tree:
Ice tree - clone point
Ice tree - clone point
icetree.jpg (58.57 KiB) Viewed 4292 times
(by the way, testing on SI 2010 sp1 here)

@Reinhard: very clever!! I think this setup could fit right inside the emit branches compound on the next version release. What do you think about this being default? Also nice image you have there, lots of strands going on the last iterations huh? (looks like hair). are you rendering with sss or it's just a impression ?

fabricio.chamon
Posts: 94
Joined: 09 Jun 2009, 23:47

Re: StrandTree - Ice Procedural Tree Generator

Post by fabricio.chamon » 28 Apr 2010, 06:30

forgot to say: check first page for a video of a wip tree simulation!

User avatar
rray
Moderator
Posts: 1774
Joined: 26 Sep 2009, 15:51
Location: Bonn, Germany
Contact:

Re: StrandTree - Ice Procedural Tree Generator

Post by rray » 28 Apr 2010, 09:29

Cheers man, thanks for picking up on this Fabricio. I think it would be nice to have this as default, the length attenuation fcurve could be reused. It might make sense to implement it using a slider from 0 (no optimization) to 1 (full).

Had some side effects (see attached) using this but I think this could be resolved if new branches were spawned at random % positions instead of at random points. I don't know how difficult it is to implement this because I haven't gone to real depths with ICE yet. There is a compoud I remember (I think done by Helge) called GetPositionOnStrand that could probably be used for this. You can find it inside Kristinka Hair kH_Strand_Length compound.

The material is 2011's Hair_Shading, standard raytracing & shadows using a light rig. I think the SSS effect might come the high number of lights (64).
______#
PS... nice sim!
side effect when reducing segment count
side effect when reducing segment count
IMG_H2.jpg (202.48 KiB) Viewed 4260 times
Last edited by rray on 28 Apr 2010, 18:16, edited 1 time in total.
softimage resources section updated Jan 5th 2024

Post Reply

Who is online

Users browsing this forum: No registered users and 31 guests