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).
Morphing
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:
- Find a good formula for sunsets.
- Make the fractal mountains more adaptive, so they can be rendered without
storing any of the individual parts.
- Create procedural planets, with different things happening at different
levels of detail. Include mountains, rivers, clouds, trees, cities,
highways, etc.; make it easy for others to add new features.
- I also am always thinking of ways to make text look cool (blasting
from behind the screen and warping in--that sort of thing).
Go to
Please send e-mail to
randy@axon.cs.byu.edu