Adding Noise and Turbulance
We saw in the degenerate model that the color can be expressed as a
function of the distance r from the z-axis. Adding noise or turbulance
is done by peturbing the radius by either a noise or turbulance
funtion(See [3]
or [4] for an excellent treatment of noise and turbulance). Since the
degenerate model is based on concentric cylinders a natural choice of
parameters to the pertubation functions should be based on a
cylindrical coordinate system (r, theta, z) where:
r = sqrt(x^2 + y^2);
theta = asin(x/r);
assuming asin returns a value between [0, 180]
if(y< 0) theta += 180
The color equation becomes:
Color(r) = color(r + Noise(r, theta, z));
Color(r) = color(r + Turbulance(r, theta, z));
Some Pictures of Noisy Wood Grain
These were produced with a 2-D(theta and z) array of random numbers
ranging from 0 to N. The range of influence for each random number is
30 units in z and 6 degrees in theta. Linear interpolation is used
between random numbers. In an attempt to reduce the affects of linear
interpolation the result(Peturb) of the Noise and Turbulence functions
are used in the recalculation of R.
R = sqrt(x^2 + y^2 + Peturb^2)
N = 20, GrainWidth = 2, RingWidth = 8
N = 25, GrainWidth = 2, RingWidth = 8
N = 35, GrainWidth = 2, RingWidth = 8
N = 35, GrainWidth = 1, RingWidth = 4
not very exciting.
Some Pictures of Turbulent Wood Grain
N = 20, GrainWidth = 2, RingWidth = 8
N = 25, GrainWidth = 2, RingWidth = 8
N = 25, GrainWidth = 0.5, RingWidth = 4
N = 35, GrainWidth = 1, RingWidth = 4
still not very exciting.