Peter Eastman For this project, I implemented a variety of procedural solid textures. These textures use noise functions to alter many different surface properties, including the ambient and diffuse colors, transparency, reflection coefficient, and surface normal. The textures are based on the noise functions of Perlin (Siggraph 1985, pp. 287-296) and Worley (Siggraph 1996, pp. 291-294). Perlin's noise function uses a randomly chosen spline interpolation function to define a function in three dimensional space which varies smoothly on a specified length scale. Typically, many "octaves" of this function are added together, each one with a length scale half that of the previous octave, to create a fractal noise pattern. Worley's noise function places randomly chosen "feature points" with a specified density throughout three dimensional space. He then defines a function F1(r) as the distance from the point r to the nearest feature point. Similarly, he defines F2(r) as the distance to the second nearest feature point, and Fn(r) as the distance to the nth nearest feature point. As with Perlin noise, multiple octaves of these noise functions can be summed to obtain useful fractal patterns. The sky texture in both images uses fractal Perlin noise to modulate the ambient color. Noise values below a certain threshold correspond to clear sky, while higher noise values are mapped to varying cloud densities. The ocean water and cliff face are both bump mapped based on the fractal version of Worley's F1 function. This creates a complex pattern of sharp ridges on many length scales, similar in shape to ocean waves. The marble texture on the columns is created by using Perlin noise to modulate the phase of a sine wave. This distorts the sine wave into a complicated pattern of swirls which resemble turbulence. The colored mosaic pattern is created using Worley's functions. F2-F1 is used to define the gaps between stones, while each stone is colored based on the identity of the nearest feature point. F1 is used to bump map the stones, giving them a rounded appearance. The leaves climbing up the columns are created by using the F2 function. Values below a cutoff are green and opaque, while values above the cutoff are transparent and colorless. In addition, the texture is bump mapped with F2 to give shape to the individual leaves. The dolphin was modelled by hand using Pixels3D on the Macintosh, based on photographs of bottlenosed dolphins. The splash consists of 300 tiny spheres. I wrote a Matlab script to generate the points according to a reasonable, radially symmetric distribution, and output them as an Inventor file. The water in the pool was generated by adding together various sine waves, plus a small amount of random noise, to create a hightfield. I then wrote another Matlab script to output the heightfield as an Inventor file. The images were raytraced with a maximum ray tree depth of six. They were antialiased by tracing four rays per pixel, one through a random position in each quadrant.