A Simple Model of Wood

Wood grain can easily be modeled as a collection of concentric cylinders. By specifying two parameter the RingWidth and the GrainWidth determining the color for a given point is a function of that points distance from the axis of the cylinder.

If the cylinders are defined to be centered on the z-axis the color function is just a matter of determining which ring the point falls in based on the radial distance from the z-axis.

Color(float R)
float D { D = R/RingWidth; D = (D - (int)D) * RingWidth; if( D < GrainWidth) return GrainColor; else return PulpColor }

Not very excitimg!!!!!