ASCII by Jason Scott

Jason Scott's Weblog

The Render Junkie —

A long time ago, I was a render junkie. I got better.



Like a lot of people, my real introduction to Raytracing as a concept came in the form of the Amiga Juggler, a had-to-be-impossible animation created by Eric Graham that was doing some sort of amazing trickery with graphics and reflections that were well beyond anything I’d seen before. Well, more accurately, I had seen stuff like this before, but it was off in the realm of however-they-do-movies, stuff like the Tron films and Juggler Adam Powers. This was stuff that people could be using most anything to accomplish, but the Juggler that I saw was being done on my Amiga, and I simply could not fathom that.

As an example of the disposability of graphics, you might look at this animation with a weary eye and conclude it is simplistic, easy-to-pull off and no great shakes. But at the time, I do assure you, it was a miracle. Specifically, the reflections of the glass balls are a miracle, while the rest of it is merely astounding beyond normal measure. Raytracing, you see, was one of those innovations that far outstripped my own abilities and understanding, yet its output was obvious and fascinating. You could tell me that you’d mathematically constructed a model for simulating rays of light as they would appear to bounce around a scene and therefore could create highly realistic and accurate images, but I wouldn’t really understand how you would do that. I suspect I still don’t. Others, naturally, have an innate ability to understand all this; one of my heroes Drew Olbrich not only wrote ray-tracers for fun and learning but even did one with a calculator and markers, which is up there with the kind of magic that sends you immediately to hell.

If my salad bar of superlatives seems over the top, this is really how raytracers and the concept of them excite me.

Somewhere after the explosion of the Amiga Juggler, came DKBtrace, a command-line raytracer for the Amiga written by David K. Buck and which dropped, into my waiting hands, the ability to actually do raytracing. Bear in mind, of course, that raytracing under these circumstances might seem a bit strange. Without a graphics interface, all scenes and lights and everything else were pure textfiles. Here’s how you’d make a red sphere:

OBJECT
SPHERE <0 0 3> 1 END_SPHERE
TEXTURE
COLOUR Red
END_TEXTURE
END_OBJECT

I assure you, a person who is motivated enough can put up with and learn anything. Being given the tools with which to accomplish something wanted beyond all measure, no matter how strange the tools, is a minor hurdle. I learned the arcane DKBtrace language and how to do light sources (you created a sphere and colored it what was needed and then declared it a light source) and all the rest of it, and I could raytrace before I turned 20.

That said, bear in mind that rendering a 320×200 image on an Amiga 1000 was an overnight, 8 hours+ commitment. The system was doing a lot of calculation to generate these images, and it taxed the system completely. And sometimes it would crash. Still, of course, I immediately shot for the moon and wanted to do a movie on it.

My movie, which I haven’t given much thought to in the last 15 years, involved having shopping carts recreating a dance scene from West Side Story. I don’t even know how I expected to accomplish this, but I figured, probably reasonably so, that by the time I got one aspect of the approach down (making the shapes, doing the test renders), technology would slowly increase to the point that I would either be able to get what I wanted or know somebody who did.

I did some basic work with florescent lights (huge rectangles, add width, color white, add second rectangle, color gray) and with making shelves of products, and so on. Bear in mind, we’re talking weeks, with the computer left to “render” out my test models and other items while I walked around the streets of Boston in the 1990-1991 period. A very strange time.

However, more critically, as I got into the Internet (pre-web version) and was finding myself on UNIX boxes, I made the delightful discovery that DKBtrace had been ported to UNIX! Not only that, I loaded up some of my data files, and they worked, and not only did they work, but they worked fast. A UNIX box could render these images in less than an hour, and do it in the background (as this was my inspiration to learn about the “&” backgrounding command in UNIX), and have it waiting for me the next time I logged in.

So there is this period of time in my life, going from around 1990 to 1993, when I am a complete and utter rendering junkie. What I mean by that is that I would beg, borrow and steal my way onto any machine I could find, anything with a unix account and an ability to compile, and I would upload DKBtrace (and its later incarnation, POVray), compile it, and then start sucking up the CPU cycles. And again, this is not minor computation I was doing, especially as I jammed things up to 640×480 images. We’re talking one of the most active processes on a machine, easily noticeable, a hostage situation for the processor, making my images.

I’d start out rendering one of the default images, just to get a handle on how powerful the processor was. One of my favorites was this pac-man image done by Ville Saari, because you got this wonderful reflection-filled creation and based on how many minutes it took to render, you knew exactly how good a machine you’d snagged.

I have this great memory of visiting Clarkson University related to my online game for a party, and hanging with a guy, and then finding out he had access to a bunch of UNIX machines. “Oh, REALLY,” I said, like an drunk finding out your dad had a liquor cabinet downstairs. Next thing I knew, I was on a bunch of boxes, just rendering like a maniac, drinking in the fast CPUs, pulling in the reflections, making those machines my little slaves.

Like I said, I got better.

I’m not quite sure why I stopped, but I did. I still visit the POVray Hall of Fame, and love going to Pixar movies and still go out of my way to see the computer-generated films even if a lot of them suck. The love is there. But I guess it’s similar to why I don’t work on videogames anymore; too many people with too much more time than me doing way too much cooler stuff. “Core Competency”, that easily-thrown-out term by a million middle managers, applies here. It’s not where I’m really good at things and so many people are kicking ass. So I don’t.

In the middle of my work at Focus Studios, the game startup I spent my 26th year at, there was a need to create a mock-up computer animation of a game being worked on. Two months went into that, utilizing 3D Studio max and textures in Photoshop and so on. I thought it was very good, what came out the other end, but I don’t have much record of it. What I was struck by, at the time, was how much easier things were. Graphical Interface, render times, choice of textures, reflectivity… it was all slick and easy compared to my earlier days, strung out on CPU cycles and traced rays. I think that was the last time I really did much in the way of 3D graphics work that was anything like my misspent early 20s. I do miss that, the waiting for the picture to render, the anticipation that I got things right, and the dim glow of reflected metal in what I ultimately produced.

I miss it very much. Like any recovered junkie.


Categorised as: Uncategorized

Comments are disabled on this post


4 Comments

  1. Flack O'Hara says:

    I think everyone who was around “back then” remembers when and where they first saw the Amiga juggler. I first saw it at a computer user’s group meeting and I was blown away. I agree, seeing it now in an age where I have YouTube videos in a separate window playing *right now* may not seem impressive, but back then it sure was something. I remember seeing it in Tom Petty’s video for Jammin’ Me (http://www.youtube.com/watch?v=uCxegqMU17A, 2:29 mark) and thinking that it might start the computer revolution I’d dreamt of (which didn’t happen until the arrival of the WWW)

    I did my first rendering on a 486 DX4/100 using some piece of shit shareware program. I didn’t get as far as you did; I pretty much stopped with rendered versions of my name rotating around in space, complete with lense flares and light sources. Even if the output seems stupid now it was awesome to work with 2D materials and somehow create a 3D object.

    One thing I think people tend to forget is that for years and years there was no such thing as multitasking. Whether you were rendering something or running a BBS or downloading a file, your computer was dedicated to that task.

    Another thing I don’t think people get (unless they were there) was that a lot of early hacking wasn’t done as vandalism or in search of fame but rather in search of resources. I never wanted to crash a college server — I just wanted to abuse their seemingly-limitless bandwidth for my own nefarious needs. I didn’t want to format their drives, I want to store shit on them. Back when games were measured in megabytes or even kilobytes, having gigabytes of storage at your disposal was like the Goonies finding One-Eyed Willie’s sunken treasure.

  2. Jeff says:

    Jason:

    Thanks for the flashback. The Juggler was the start of something that only exhausted itself when I saw the first ads for Babylon 5 and realized that the state of the art had passed me by. Time to pack it in.

    Ironically, I learned my initial skills using VideoScape and Modeler 3D, which was written by the same guy that wrote the modeler for Lightwave on the Video Toaster a few years later.

    I had abandoned VideoScape in favor of Turbo Silver (and later, Imagine) because they did actual “ray tracing”, but the Lightwave people realized that you didn’t need to ray trace to make it “good enough” to look GOOD. And boy they were right.

    Also ironically, I usually did my base models in Modeler 3D then imported them into Imagine. Modeler’s absolute metric scale made more sense to someone that had taken “classic” drafting classes in college.

    Ah, good times.

    @Flack:

    Actually, Amiga users *did* multitask while ray tracing. It wasn’t pretty, but it worked. and worked well. I and at least three people I knew in the San Diego area would have renders going at just about any hour on the same machine that served up BBS logins – and in one case, an echomail hub for the neighborhood!

  3. Here I am, reading this nice bit of nostalgia about raytracing, because I went through some of the same revelations, and I’ve even got code in POVray (I added the hexagon texture), then I run across that link to TinyTIM. And then I look closer and realize, “Holy crap! This is SKETCH!”.

    Haven’t talked to you in nearly ten years, and now I run across an article on your blog at random. Life’s screwy like that sometimes.

  4. David Buck says:

    I’m the author of DKBTrace. I also drifted away from raytracing but still fondly remember the long hours watching an image render. The world was different back then. Software was fun. When I released DKBTrace 1.0, my feeling was that I had fun my with it and I’d release it as freeware in case anyone else was able to have fun with it as well. It grew beyond my wildest imagination. POVRay now creates stunning images. Even though I’m not active in the graphics community any more, it’s still fun to see where it’s going.