How can I proceduraly create the dark lines as seen in white birch (paper birch) bark?

white birch bark piece

This is the exact type of effect I'm trying to replicate. Random sized "lines" in the bark, yet they all run the same direction.

You can see in this picture, that this variation of birch has a slightly different bark pattern. Here the lines are much longer. (At this point I don't care about the random dark blobs, they are mostly knot holes, but if somebody wants to include that too... :)

birch trees


Making a birch shader completely procedural is quite a challenge, this is my version: procedural birch shader (download blend file below)

Like the other two answers already say: you archive these effects with stretched noise textures, color ramps and mix nodes. It takes quite a bit of time and experimenting to figure out wich noise looks best for the specific surface. I mainly used the standard noise and musgrave noise.

Unfortunately I can't walk you through the whole shader, but here are some steps that help me:

  • research the node wrangler add-on to prevent headaches

  • work from large-scale noise to small-scale noise. Here I created the big random blotches first, after that the horizontal lines and at the end the tiny black spots. That helps keeping the proportions right. It needs to look right from distance first, keep the details for later.

  • look at your noise textures isolated. With the node wrangler add-on activated, you can Ctrl+Shift+ leftclick a node and a viewer gets created.

  • stay between values of 0 and 1. When you start to mix the different noise textures for more complex noise, always look at the isolated result and make sure that the values don't go negative or exceed one. Your shader won't break when you have values below 0 and over 1, but it makes it much harder to work with, because these values can not be displayed.

  • group components to keep your overview... but: don't group them too early. Isolating nodes doesn't work in groups and this makes it really hard to "debug" node-groups, when you want to find one specific pattern.

Here are the horizontal lines I used: enter image description here

  1. create noise texture
  2. scale on z axis by mapping coordinates (i used 4, 4, 40 in scale)
  3. a high contrast color ramp for sharp edges
  4. i used only the R channel of the noise

The result of that color ramp could then be used to

  • mix between shaders (as a factor in mix shader node)
  • create a mask, e.g. for colors or shader properties like roughness
  • be mixed with other noise patterns to create more complex and interesting noise
  • ...

Here is the file:

| improve this answer | |

Here's what I could come up with.

enter image description here

It mostly relies on using a Voronoi texture squashed in Z axis, and a Color Ramp node to control the "spot radius" for the smaller spots.

For the bigger branch dark spots or nodes, again the same setup of Voronoi texture with a Color Ramp node to control the blotch size, the only addition is mixing texture coordinates with a noise texture to make them more distorted and irregular looking. Have in mind I didn't bother recreating those "inverted V streaks" visible around the branch nodes in the second image, those don't seem trivial to achieve without some sort of image based texture.

Here is the corresponding node setup

enter image description here

You can adjust the spot amount/density with the Scale value of theVoronoi textues, the "squashiness" by varying the Z scale value under the Vector Mapping nodes, and the size by sliding the control points on the Color Ramp nodes.

| improve this answer | |

I came up with this but if I were to go this route I would use this setup as a mask and create the other two textures independently.

sample material render view

node setup for material

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.