Home | Linux | Adventures in Ray Tracing |     Share This Page

All content Copyright © 2005, P. Lutus. All rights reserved.

Click me for 3D
Click above image for 3D ()


Conventional computer graphic rendering

Ray-traced version of the same scene (Click me for 3D)
What is Ray Tracing?
Ray tracing is an advanced computation method that produces very realistic graphic images. It relies on mathematical sophistication (and raw computer power) to mimic the optical behavior of water, lenses, beams of light, atmospheric effects like haze and fog, multiple reflections, and something called "radiosity," a very specific diffuse glow one sees in natural environments.

In short, if you want to make pretty pictures, pictures that are true to nature, or if you want to accurately model something with optical properties, or if you want to explore environments too expensive or impractical to actually build, ray tracing may be for you.

Conventional computer graphics proceeds by creating and drawing the surfaces of a lot of colored polygons. Sometimes shadows are handled, using a relatively simple approach that asks whether a light source is visible or not. This method is fast but not very realistic. The important thing to emphasize is that conventional graphics rendering deals with surfaces, and doesn't concern itself with the interiors of things.

Ray tracing works on a different principle. Put in the simplest terms, for each picture element in an image, ray tracing shoots a ray out into the virtual environment until it collides with an object. If the object is reflective, like metal, or transparent, like glass or water, the method then determines what new path a ray would take based on the object's properties. Then the ray changes course and shoots along that new path, to encounter some new object, at which point the same decisions are made again, ad infinitum (or to a limit the user has patience for).

Ray tracing requires a lot of computer horsepower. If you have a choice of machines on which to carry out ray tracing, choose the one with the fastest processor and bus architecture. If you have several computers available, you can use advanced methods to divide the work load. In the meantime, learn how to preview your images in the smallest practical scale, with the fewest enabled features, before producing final renderings, which you may prefer the computer to carry out while you walk your dog.

What's all this about 3D?
I include a lot of 3D content in these pages because it is the next frontier in computer graphics (therefore in print media, movies and TV). In the future, much everyday media will be 3D, and the methods will be better than they are now. The anaglyphic method used in these pages is rather primitive, one gives up color to get depth, but it allows the reader to get a sense of the importance of three dimensions in interpreting an image. To put it simply, once you become accustomed to 3D, everything else will seem flat.

A Personal Note

An image from "Apple World" (1979)
I am Paul Lutus, the author of these pages. I have been creating computer graphics for a long time. One of my first graphics programs, "Apple World", for the Apple II, became a best-seller about 25 years ago (see image at right).

Early personal computers were very slow and offered little opportunity for photo-realism. In fact, your computer's keyboard chip has more raw processing power than my first computer, as does your TV's remote control and your digital watch. We've come a long way, boys and girls.

Take a close look at the image from "Apple World." From a modern perspective, it's really quite terrible. But when I first wrote this program, it created a lot of excitement. I ws invited to show it on national, prime-time TV. This only tells us how far we've come in a few decades.

But there is more to come. A revolution in the world of computing, now underway, will change how we create and distribute computer programs. Microsoft will become just another software company and will be forced to compete with people who actually like programming, people who think high-quality programming is its own justification. And most important, nearly all worthwhile computer programs will be free.

Computers will continue to become faster and cheaper and techniques like ray tracing will become easier. It will no longer take hours or days to render a beautiful but complex scene. By reading these pages, you will acquire an advance look at that future. And I hope you will have some fun — that is one of the reasons to own a computer, right?

 

Home | Linux | Adventures in Ray Tracing |     Share This Page