Randy Wilson's Graphics Page

Stochastic Ray Tracer

I wrote a stochastic ray tracer from scratch in C, using jittered eye, shadow and reflection rays in order to create soft shadows, soft reflections, and antialiasing. I also derived the formulas for cone sweeps in order to render the chess scene described below.

Rook ala King

This chess board was rendered using soft shadows, soft reflections, and mostly cone segments. Three light sources give a variety of shadows as well as specular highlights.

This image was included in the ACM SIGGRAPH 94 Application Slide Set (slide 69, Computer Graphics, Vol. 29, No. 1, pp. 40-42).

Fractal Terrains and Ocean Waves

I also experimented with fractal mountains consisting of subdivided triangles, which are adaptively divided so that the triangles are smaller than a pixel from the viewpoint. The different-sized triangles are fitted together seamlessly so there are no gaps. Automatically-generated heirarchical bounding boxes are used to ray trace the fractal scene efficiently. I also generated ocean waves for this scene. In order to ray trace the procedural height field, I used an upper and lower bounding sphere, between which small steps were taken until the ray went from above to below the wave. Then a binary search was used to find a more precise entry point. Unfortuantely I ran out of time before getting nice sunset colors, so I settled for a heuristic for the sky color. The following MPEG movie contains the completed scene. It was ray traced using 30 HP workstations running in parallel in a few hours.

Alaskan fly-by (fractal landscape with water).


I wrote a morphing program in C, using formulas from the 1992 SIGGRAPH proceedings.

In a traditional application of the process I morphed the faces of my graduate advisor and my current department chair (then my instructor).

In a less traditional use of the process, I morphed two of my appendages:

Morphing of Two of my Appendages

Current Interests

Some things I'd still like to do in the areas of computer graphics and vision:
Go to
Please send e-mail to randy@axon.cs.byu.edu