I had a bit more think about this one and came up with a solution using the pixel processor and and a baked from mesh position map.
Basically it uses the original two dimensional wood end grain graph that I showed previously.
It then reads the position of each point on the UV using a baked 'position from mesh' graph. So it now has an X,Y and Z co-ordinate. Then it samples that end grain (X,Y) and places it across the third dimension (Z). I added a little variation in the sampling of the long grain to make it more realistic

So in short it is treating the end grain as a cross section through the material and then sampling at each surface point along the third axis what the value would be if it was cut out of that section (as well as adding a little variation)

Applied to a torus:

Hopefully that is sufficient steer to get you started on your own 3D wood material.
Dave