home page
book reviewspalmpilotgraphicsCV (Resume)MR2journalslinksitems wanted and for salewaht's new on this sitehobbies and interests
rings of balls
How my ray-tracer evolved
What happened to the ray-tracer
Features of the ray-tracer
Example scene description files

See some pictures

How my ray tracer evolved

I first got interested in ray tracing in 1987 when I bought an Acorn Archimedes RISC computer. Previously I'd had a BBC model B with 32K of RAM. Even with this machine I'd been interested in computer graphics, but with a whole 1MB of RAM, here was a machine with almost limitless possibilities for graphics. (This was 1987, remember!). Since I'd always been fascinated in how it was possible to describe an object to a program which would then go off and render a picture of this object given various lighting conditions, it wasn't long before I started to write a simple ray tracer that would draw planes and spheres. At this stage, I was writing in BASIC V - a fairly advanced form of BASIC for the Archimedes.

Naturally, planes and spheres wasn't entirely sufficient so I added cylinders and boxes. Also, since it was written in BASIC, then it wasn't particularly fast either, so I spent a couple of months perfecting some RISC assembler code to emulate floating point arithmetic. This ended up faster than the floating point emulator that was built into the machine by about 20% on average. Still not fast enough, so I wrote the whole application in RISC assembler in the end which made a wild amount of difference.

About this time I showed some of my pictures to Onkar Jagpal at Arxe Systems Ltd., and he showed me some other ray-tracers that were available on the market (public domain or not), and I realized that my efforts were pretty poor in relation to these. So, I junked the whole lot apart from the floating point code. I got the source code to Craig Kolb's RayShade, and basically over the next few years, spent my spare time using Rayshades ray-tracing methods to write a new well optimized ray-tracer totally in RISC assembler. I must have been mad! The source code ended up several years later being about 700K in size. Initially it was well commented, but as it got bigger, I had to remove all the comments because it was too big to compile! But it was fast - and extremely compact, and had an easy GUI to control everything you could want.

What happened to the ray-tracer

A technical author, Roger Amos, had come across the ray-tracer and wanted to describe it in his book called 'Graphics on the ARM machines'. It got several pages about the ray-tracer, and a couple of full page colour plates. Fame! It was one of the best feelings in the world when I happened to spot this book in a shop in Cambridge and opened it to find my pictures and my name inside.

As the ray-tracer got nearer to being a sellable product, Arxe Systems, who had funded some of my work on the ray-tracer, folded and it never went to market. It had been on display at the Acorn User show at Wembley two years running and had got a lot of interest. Presumably Stefan Froehling, who ran a German company called Evolution Computer, had come across it too, because it was he who approached me a year or two later wanting to take the product to market. I spent more than a year of my spare time adding functionality and interface changes that he wanted. He did at least give me a much better machine to work on, but after a year of working on the product doing 'the boring stuff' rather than graphics, I passed control of it all over to his company - I'd had enough of it all. I'd left university and had been working for a couple of years by this time, and I simply didn't have the time or inclination to work on it any more.

The last time I spoke to Stefan he claimed he'd sold about 35 copies of the ray-tracer, and hadn't sold anything for a couple of months. I think it just came out a couple of years too late.

Features of the ray-tracer.

The ray tracer has a huge number of features listed here with a few shrunken screen shots of the interface with the ray tracing engine. Apart from just defining the description of the objects in the scene, the user is able to manipulate viewing points, the rendering style, and to reduce or ignore time consuming parts of the rendering in order to produce a preview image in the minimum time.

Example scene description files.

One of my scene description files has found its way back to Rayshade - it's now in the examples list issued with Rayshade, on the stanford university ftp site. It's a buckyball molecule, and is a good illustration of the object oriented capabilities available with the description language.

Another example is given here for the picture at the top left of this page which was inspired by an image produced by TAOS systems who were developing a distributed ray tracer for the Archimedes at about the same time as I was developing my ray-tracer.

See some pictures?

Join 3D Ring

a member of 3D Ring
[ next site | skip next site | next 5 sites ]
[ previous site | back 2 sites ]
  
Top  ¦  Home  ¦  Ray Tracing  ¦  Fractals  ¦  CV  ¦  Interests  ¦  PalmPilot  ¦  Journals  ¦  For Sale
Last updated 17 July 1998  ¦  Fave Links  ¦  contact me