Procedural bark material

Hi everyone !

I’m trying to make a procedural bark material for my tree addon, as it would be a good way to avoid unwrapping the trees.
here is the current result:


Here is the node tree, it is very messy at the moment.


That, looks, awesome! Nice work.

Wow! really wow! it looks very beliveable. I suppose that render times are dramatically long…but final effect is more than great!
Maxime - i wonder how is going work with particles and better control of them (to make leafs control more usable)

That’s looking really nice! Have you thougth in an OSL version?

Well done, great approximation. Should be able to code in color aspects based on the node tree, theoretically. :wink:
Thank you for sharing.

really awesome!

since it appears to be just object coordinates, is there a modelling trick to make the bark around the knot areas wrap so realistically?

The knots are created by the material, the tree itself is a cylinder.
The bark follows them because it is scaled up near the knots.

Here is the same material applied to a cube:


I cannot modify particle orientation precisely with python. I’m thinking of adding another mesh to instantiate the leaves.

I never used OSL, seems interesting, but why would you want an OSL version of this material ?

This is really great! It looks fantastic.
Would you mind sharing the nodes with a Blend-file, so that I could try to tweak it … e.g. for other type of trees?

here is a blend file with the material in it. It uses the 2.78 release candidate for the microdisplacement. (120 KB)

Great, many thanks!

Looks fantastic. Even the stumps are part of the material ?

Of course the bark should follow the shape of the tree. I think the best way is to store the required rotation on a vertex color data.
Here is the result on a simple object:

The vertex color data being:

Great material, Maxime. Thanks to you. Here’s oak I made with it.

@Maxime: looks promising, thank you

so incredible!

This is really cool, and when I render your file it looks exactly as expected, but when I import it to a new file it looks weird and I wonder what I’m doing wrong?

I compared my file with yours to try and see what’s different but I couldn’t find it.
I’ve enable experimental features.
I have a subsurf modifier on the object, set to adaptive.
I have Displacement set to True.
I even appended your example log just to see if there was something wrong with mine, but it looks weird as well once it’s imported to my scene. (Yours is on the left here.)

Does anyone know what I’ve missed? I’m not familiar with the experimental features at all.

untitled.blend (1010 KB)

i’ve cleaned the layouting of the material so it can be understood more clearly
here’s the link for the blend file