If you haven’t read parts 1, 2, and 3, you ought to read them to get context on where we are on the wood journey!

Part 1

Part 2

Part 3

Last time we changed the grain pattern to match the little holes that run through the length of the wood. This time we’re going to add another important feature of wood, called “rays.” Rays help the tree to carry sap from the center to the outside of the trunk. In the picture we looked at last time, the rays are the vertical lines:


And looking at a piece of red oak, the ends of the rays are those thin lines that are all over the wood:


As I mentioned, they radiate out from the center of the trunk. To accomplish that, we’ll need to do some tweaking of our vectors. Again we’ll need to separate out the X and Z components since our radial pattern needs to be on the end grain. No need to add another SeparateXYZ node since we already have one, but add another CombineXYZ node, and connect the X and Z from our original SeparateXYZ node to it:


Add a Vector Math node (Add->Converter->Vector Math) and set the type to Normalize. Connect the output of the CombineXYZ node to the input of the Normalize node.


If you bypassed all the other nodes and connected the output of the Normalize node to the Diffuse BSDF node, your render would look like this:


Note that the colors now seem to radiate from the very center point, so we’re on the right track. To turn that into rays, we need to add a familar node from last time: Voronoi. Add a new node and set the scale to 150. Connect the output of Normalize to the input of the Voronoi Texture node.


If you connect the output of the Voronoi node to Diffuse BSDF, it’d look like this:


Cool pattern, but it doesn’t look like our reference yet. Let’s thin them out! Add a Color Ramp node and connect it to the Color output of the Voronoi node. Click the reverse (double arrow) button to make white on the left and black on the right. Then move the black marker all the way left to 0.075.


This makes our Radial pattern into a series of thin lines, which is closer to what we want:


The next problem is that the lines run down the entire length of the board, and we need short little random lines instead. This requires a little bit of trickery. Remember we removed the Y-component of our Vector at the beginning so that the radial pattern would only be in the X-Z plane? Now we need to put it back. To do that, move the Voronoi and Color Ramp nodes to the right to make space between the Normalize node and the Voronoi node:


Insert another SeparateXYZ and CombineXYZ node, and connect only the X and Z connections:


Now, connect the original Y, from the very first SeparateXYZ node, all the way to the CombineXYZ that we just created.


Rendering, we now see our lines have turned into a bunch of little dots:


All we need now is to scale them so they’re longer lines instead of dots. Add a Math node and set it to Multiply, and insert it into the Y connection we just made. Set the Value of the Multiply node to 0.05:


Perfect! Rays are coming from the center of the wood, and showing as little lines all over the wood surface:


All that’s left is to mix it into our wood grain. Add another MixRGB node and place it between the current Mix node and the DiffuseBSDF node. Connect the Color output of the previous Mix node to the Color1 input of the new Mix node. Set the Color2 value to Hex 42322B.


Connect the output of our Ray Color Ramp into the Fac input of the new Mix node.


Hmmm, after rendering, I think our original grain tube color is a little dark. Try changing Color2 of the previous Mix node to Hex 957061. I think it looks a bit nicer with the Rays darker than the grain tubes:


Our wood is looking really good! I hope you can use these examples to play around with the settings and colors to make different types of wood.

Despite how nice the wood looks already, you might have noticed that the end grain of our wood still doesn’t quite look like our reference…next time we’ll see if we can get it closer!