Ray Tracing News

"Light Makes Right"

July 14, 1994

Volume 7, Number 4

Compiled by Eric Haines erich@acm.org . Opinions expressed are mine.

All contents are copyright (c) 1994, all rights reserved by the individual authors

Archive locations: anonymous FTP at ftp://ftp-graphics.stanford.edu/pub/Graphics/RTNews/,
wuarchive.wustl.edu:/graphics/graphics/RTNews, and many others.

You may also want to check out the Ray Tracing News issue guide and the Mother of all Ray Tracing Pages.



Before we get started, an announcement:

A POV-Team member, Christopher Cason (cjcason@yarrow.wt.uwa.edu.au) is setting up a new POV FTP site in the USA to take some of the load off the USA<->AU link. The POV site at ftp.uwa can sometimes handle over 1500 POV-related downloads a day.

At this stage, Chris has a site available but has *no nameserver* for the MX. If there is a stable, well-connected site out there that satisfies INTERNIC requirements for nameserving for a USA-based MX record, and would like to volunteer, please contact Chris.

Nameserving requires virtually no work or hard disk space.


Chris has tried a number of people on the FTP list, so far with no luck, so don't expect someone else to volunteer. Note that Chris has got an FTP site in the US, but needs a nameserver - you're NOT mirroring his site and the task needs a minimal amount of time; it sounds like an easy way to be a hero. So if you have any say about your FTP site, please do volunteer.

This is something of a hobbyist issue, focussing on resources which are for either users of rendering packages or for beginning/intermediate level graphics programmers. In this issue we have another fine article by Amanda Osborne giving her impressions of the various public domain and shareware ray tracers out there. There's also, oh... just read the issue and find out! This (like RTNv7n3) is a catch-up issue: some late breaking news is in here, but mostly I'm still caught in a backlog.

One bit of errata about RTNv7n3: Francois Sillion & Claude Puech's book on Radiosity will be out in time for SIGGRAPH (subscribers' issues were incorrect).

To end the intro, here's a tidbit that fits nowhere else (from Keith Higgs (dhiggs@magnus.acs.ohio-state.edu)):

  I know a guy who runs PoV 1.0 on an old 386SX16 and just locks the keyboard
  after starting a finished quality image at 640*480.  He's run images which
  took up to 21 WEEKS to render.  I keep telling him he's got to upgrade.  :)

I believe this is a realtime record - has anyone done better (or should I say worse)?

back to contents

Call For Participation: POV Ray Tracing CD ROM, by Christopher Cason (cjcason@yarrow.wt.uwa.edu.au)

I'm doing up a POV CD-ROM, which will be produced and distributed by Walnut Creek. My intention is to have Pov 1.0, 2.2, all official binaries, DJGCC and GCC's for various platforms (especially Unix) to allow out-of-the-box compiles, and as many unofficial compiles as possible. I will also include a good number of scenes, textures, 3D objects, etc. I want to include any interesting theses, technical documents, articles, as well as anything remotely useful. More of a 'get your hands dirty'-type of disk than one with lots of pretty pictures (though I'll have a decent number of them, too...).

Please do send or upload (to ftp.uwa.edu.au) any contributions. I'm particularly looking for utilities, scene files and animations, as long as they're done with POV.

As important, please send in your suggestions. Obviously, I want to put on the CD what people *want*.

I'm also looking for a stunning tracing for the poster that will be used to advertise the CD.

We may even issue a Mac version of the CD. [when I recently announced that the Mac files were up at ftp.uwa, the logs showed over 1000 downloads of files from the Mac directory in 24 hours ... and there's only about 7 files there.]

[There is a CD ROM about ray tracing already out, see the next articles. It is focussed on PC related software, images, and hobbyist material, where Chris' is more programmer/designer oriented and more platform independent. -EAH]

back to contents

Tracers and Tracings #1, by Tom Hoover (thoover@infi.net)

[Note that this CD ROM is online at the Tackle Box BBS, which is described elsewhere in this issue. -EAH]


Tracers and Tracings #1, a collection of public domain and shareware programs for raytracing has been released by the Information Guild. The disk contains over 850 images created with raytracers and over 180 computer generated animations in addition to over 400 programs for creating your own original raytraced images and animations. The total data content of TRACERS AND TRACING #1 is 489 megabytes.

The ROM is organized in the style of a shareware collection, with a simple program for extracting the data from the CDROM to your hard drive. The disk is FULLY indexed with descriptions for each file in the collection.

The retail price is US$30.00 + shipping. Distributors and resellers are encouraged to contact The Information Guild for quantity discount pricing. Orders are currently being taken on a cash or money order basis. COD shipping is available for an extra fee. Checks are acceptable for prepayment, but require a 10 day shipping delay.

Shipping is $3.00 in the US, $5.00 elsewhere.

The Information Guild
4962 Country Club Road
Troutville, Virginia  24175

Contact:  Tom Hoover
Phone:    (703) 992-1645
Email:    thoover@infoguild.com

back to contents

Review of Tracers and Tracings CD ROM, by Eric Haines

If you're interested in ray tracing, get this disk. It'll save you hours of searching and downloading, you'll free up disk space since you'll know the various resources are immediately available, and in general it's A Good Thing.

I've navigated the directory tree a fair bit and this disk has a lot. It's aimed for the PC, and has executables for most of the major ray tracers on it, including POV 2.2, PolyRay 1.7, Vivid, Rayshade and Radiance (about the only one missing is RTrace, I believe). Note that source for many of these ray tracers is not available on the disc; in general, this disk is aimed more at the user/hobbyist than the programmer.

The larger directories are FLI animations (120 MB of the uncompressed movies, i.e. immediately playable and a separate directory of 82 MB of the movies compressed), still images (130 MB), scene and data files (24 MB), and utilities galore (37 MB). There's also documentation, image displayers, and other related files. There are also random bits like a directory of fractal generators, VR tools (VRend386 and suchlike), and even DOOM v1.2 and similar games. All in all, a pretty amazing collection. BTW, if you explore the still images, note that there is a set of catalog GIF files which contain all the images in 3x3 "contact sheets".

There are a few minor flaws on the disc. For example, all the issues of the Ray Tracing News are here, except for RTNv6n1. The FLI player aaplay.exe has a bug in it (at least on my system) where it can display only the first five pages of the CD's directory of FLIs (though there are ways around this) - a flaw in aaplay, not the disc, but still annoying. In the images directory chksph2.gif is corrupt, and I leave it as a puzzle to find the random image of Charles Barkley. Speaking of images, I was surprised to find no texture files.

As is common with CD ROMs, there's a lot of stuff shoveled onto this disc. Some of it is wonderful to have, but there's also a fair bit of clutter: awful images and FLIs, many versions of the same software (e.g. vpic* has 8 versions on the disc), and various poor quality tools. I wish the authors, who obviously spent a lot of time putting this package together, had taken a few hours to put together a brief text file listing their top picks. Also, don't fool or be fooled: quite a few of the images and movies needed no rays to be traced during their creation, but rather were done with scanline methods. This said, I am glad to have all the clutter and non-ray-traced stuff around. For one, it definitely gets your critical juices flowing and may even teach you something about what makes a good image. Also, the space is there and might as well get used. It's a great collection for the hobbyist, and I recommend it; I'm extremely glad I have one, and it's still vaguely miraculous that all this material fits on one CD.

p.s. my favorite FLI was Drop_it2 and my favorite GIF was Frosty (though I have to admit to burning out on looking through all the gifs: plan on being sick of perfectly shiny surfaces, especially spheres, after an hour or two of viewing these things).

back to contents

Ray Tracer Comparison, by Amanda L. Osborne (alo@northshore.ecosoft.com)

[You may recall that Amanda wrote up the terrific list of POV-ray utilities available out there for RTNv7n1. I asked her for a follow-up article on what ray tracers she's tried, liked, etc. Here's her response. - EAH]

I'm afraid all I can come up with is a classic politician's answer: there are good, positive things about them all. Since I began tracing with an early version of Povray, I'm probably more comfortable with that tracer's syntax than any other. However, I got BOB with Stephen Coy's book and, except for pages and pages of code-for-its-own-sake, I read everything and took lots of notes that I later applied to BOB. I was really pleased with the quality of the images that came out of that particular exploration. (I had tried Vivid but reluctantly set it aside when I realized that I couldn't pay the registration any time soon.) I would describe BOB and Vivid as being closely related but not identical twins, by the way. But, because of the wealth of primitives supported by Povray and the wonderful shapes include file, I found BOB clumsy and intimidating to use by comparison. It took several weeks of using just BOB for that feeling to evaporate.

When I was first reading about tracing and had *definitely* been bitten by the graphics bug, I tried out MTV and QRT, more for the "historical" value than anything else. Questions had arisen about what had been necessary to produce traced images, pre-povray and -vivid, and I had to satisfy myself about them. But I couldn't recommend either one to someone starting out, especially with the wealth of utilities that can serve as crutches (using a program like Povcad or Moray, one no longer has to keep, say, the left-hand rule in mind, but rather can just fiddle until the view is correct) which are available now.

I like Rayshade a lot, but wish that things were a bit more cohesive. I know most people seem to use it on other platforms (as opposed to MSDOS), but I still wish there was up-to-date documentation (non-postscript) and that some part of that documentation was devoted to what the DOS executable can and cannot do (I can't get the CPP stuff to work at all, so any #include is out of the question). The same holds true for RTrace, which I've had terrible luck with. I can't even give an opinion about it, since I've never gotten it to work on my machine (wish I could). Since RTrace is so faithfully updated and supported, I'd love to get it up-to-speed on my machine so I could try out the radiosity add-on. I'll try again sometime soon.

There are a couple of new raytracers from Europe, Rayce and Probe, that I also can't give any real opinion about, except to say that both seem to be very much works-in-progress.

I have one commercial tracing program, Imagine. (By far the most bang for the buck of all the commercial programs I looked at; sure, 3DStudio would be nice, but so is putting food on the table...) I really like it a lot; for a tracing program, it is really, really fast (and I am talking about trace mode, as opposed to scanline). It is not, however, all that intuitive to use, particularly to someone used to scripting a datafile. There are also more unexplained lock-ups than I would like to see (although this is true for any program, it's especially frustrating when it's something you've *paid* for). And I hate the way it deals with memory (I have to fiddle around or shut off QEMM to get it to work).

Finally, I love Polyray. Like Imagine, I still consider myself on a learning curve with it, but it is such a stable and powerful tracing tool. It offers more outputting options, more shadowing options, more texturing tools, than anything I've used to date. I would describe it as a tough program to learn, unless you're really into math, but definitely worth the effort. It has many great strengths, but I would sum up the top two as: math functions and animation. Polyray is set up to aid the user in creating animations; for the most part you can avoid lots of datafiles and batch files and place all the necessary data within one datafile.

I really didn't mean to go on like this, I just got carried away a bit. I think I'll create a little script and try to generate it in each of the programs and see how it goes, kind of like your timing tests, but with quality of the resultant image and ease-of-use being tested rather than speed. Non-scientific, of course, but maybe it would be helpful, just to clarify things for myself if nothing else...

back to contents

Blob Sculptor, by Alfonso Hermida (AFANH@STDVAX.GSFC.NASA.GOV)

[This thing's a blast! Marching Cubes rendering of blobbies on a PC. -EAH]

Blob Sculptor 1.0 is a blob modeler/previewer. It requires a 386/486 with a coprocessor, VGA and a mouse. The program is distributed as freeware.

The current versions for the modeler are version 1.0a for DOS and 1.0 for Windows. Both versions support only spherical components, but cones, cylinders, ellipsoids and tori are on the way.

The DOS version exports to POV, Polyray, Rayshade, RAW, DXF and CTDS. The Windows version supports some additional file outputs besides NFF.

The DOS version has a bug in the DXF output routine: it also dumps the Rayshade output. To fix this, simply load the DXF file into a text editor and delete any statements that appear after the line that reads "EOF". That will take care of it.

The team consists of Steve Anger, Truman Brown, Ron Praver and myself. Future versions will include more component types and keyframing support.

I wrote a partial port to SGI's OpenGL and works fine. If someone is interested in porting the code completely please contact me.

I wrote a series of 3 articles in 3D Artist magazine to introduce the reader to Blobs. One of the readers of the 1st article developed an Animator Pro (AutoDesk) POCO language utility to animate 2D blobs.

Finally, the source code for Blob Sculptor will appear in a book to be published by SAMS named "PC Graphics Unleashed". Each of the team members except Ron Praver wrote a chapter explaining a certain part of the program. The book is around 1000 pages and there are lots of topics. The book is similar in style to "Tricks of the Graphics Gurus". Lots of good code and info.

back to contents

Book Announcements, and Modeler vs. Scripting Language, by Mitch Waite (75146.3515@CompuServe.COM)

[Mitch asked why I recommended _Adventures in Ray Tracing_, by Alfonso Hermida, in RTNv7n1 as a good all-around book on ray tracing for the hobbyist/professional. I replied:

    Two words:  "no modeler".  Rendering without modeling is fun to toy with,
    but after a few shiny spheres pictures you can't do much more without a
    modeler or model generating programs.  - EAH]

Oh, wow, I see. Well, not sure I agree; I created some amazing book covers using the data language approach, in fact I discovered that trying to build similar covers with a modeler was harder! Walkthroughs and Flybys CD cover is a case in point, it's a large 3D grid made of tubes that go to infinity. Most modeling programs have major visibility problems with that. However you'll be pleased to hear about a book we are about to publish called _Ray Tracing Worlds_ with POV Ray. It comes with MORAY and POV Ray 2.0 and shows how to do 3D modeling to build extensive 3D worlds. It's by Alexander Enzmann (creator of PolyRay), Chris Young and Lutz, the creator of MORAY. Also we are about to bring out a 2.0 version of _Ray Tracing Creations_ as well as a Mac version called _Ray Tracing on the Mac_ [by Eduard Schwan, see next article -EAH] that comes with MacPOV 2.0.

_Ray Tracing Worlds_ is at the printer and due to arrive at our shipment center on July 14th, and that means it will be on the store shelfs around the end of July. _Ray Tracing on the Mac_ is about to go to the printer so look for it to be on the shelfs in mid August. The Mac title comes with a fantastic CD interface that contains the entire POV reference. You can look up a keyword and they play a QuickTime movie to see its effect!

back to contents

A Quick Writeup of Ray Tracing for the Macintosh CD, from notes by Eduard Schwan (esp@CERF.NET)

[I edited down the info from email from Chris Cason. The book should be out by mid-July. -EAH]

Title:  Ray Tracing for the Macintosh CD
Subtitle:  Explore the Magic of Ray Tracing on your Mac
Author:  Eduard Schwan
Publisher:  Waite Group Press, (800) 368-9369
ISBN:  1-878739-72-7

The accompanying CD-ROM contains over 250 megabytes of software utilities and example ray traced images and QuickTime movies. Versions of POV-Ray are provided for Macintoshes with and without a floating point unit, and there is a native version for the Power Macintosh family of computers. POV-Ray will run under either System 6 or System 7. There are utilities for creating complex objects, for creating and viewing QuickTime movies, and for converting between many common types of graphics file formats. There are ray traced images and movies contributed by many different artists, with the original scene files provided for you to study. It also holds an interactive multimedia reference chapter of the book, and an on-line information center that guides you through the contents of the CD-ROM.

This book is organized into the following chapters:
Chapter 1 - Introduction to Ray Tracing
Chapter 2 - Installing POV-Ray on Your Macintosh
Chapter 3 - Jumping Right In
Chapter 4 - Advanced Scene Building Techniques
Chapter 5 - POV-Ray Animation on the Macintosh
Chapter 6 - Exploring the CD-ROM
plus appendices

back to contents

Ray Tracing Roundup

Animation FAQ

The beginnings of a FAQ for comp.graphics.animation now exists. Download it from rtfm.mit.edu in /pub/usenet-by-group/comp.graphics.animation. The author/editor is Angus Y. Montgomery (rcsaym@minyos.xx.rmit.EDU.AU). Eric Haines


WWW CG FTP list (enough acronyms for you?)

There is a Web version of the Computer Graphics FTP list, the URL is: http://www.actwin.com/grg

("grg" is Graphics Resource Guide, which right now consists of the CG FTP list, will be expanded with other data as I receive/collect it). Jay Laird (jaide@looney.actwin.com)



We have set up an anonymous FTP site with RenderWare information and demonstrations.

The site is ftp.canon.co.uk

Those of you who haven't seen it can download the windows Dungeon demo "rwmaze".


all of these are pkzip archives and should be decompressed using pkunzip -d. Mike King, Criterion (mking@criterion.canon.co.uk)

[Yes, it's not ray tracing, but this is the most amazing thing I've seen all year, Doom included. It's slower than Doom, but it moves along even on my dinosaur 386/25 (no FPU) and there are no tricks in limiting the view to a certain orientation - true 3D rendering in real-time {NT users: the demos won't work for you, just Windows 3.1. There are also full-screen DOS-only versions of the demos; haven't tried these under NT}. There are some odd little rendering artifacts, but for speed this seemed to beat the pants off of OpenGL on Daytona, from what little I've seen. -EAH]


World Render 3D

There is a software package for Windows called World Render 3D which converts from many to many different 3D scene formats. It also has various scene setup and editing tools. I have uploaded a demo to wuarchive.wustl.edu: /pub/msdos_uploads/win_graphics/wr3ddemo.zip. Unfortunately, the demo does not save files (which is understandable as a crippling method, but it's also the feature that's most interesting about the package).

From the description file:

World Render 3D supports the reading and writing of files in Sculpt 3D/4D, DXF, VideoScape, 3D Workshop, Script, Imagine, TART, Lightwave, 3D Studio, DBW 2.0, NapCad 3D, RAW, NFF, POV1.0, VIVID 2.0, Envisage, Sculptura, Wavefront and native World Render 3D formats. Object primitives not directly supported by a target format are automatically decomposed into a triangle mesh representation.

Contact Ron Praver (rpraver@gate.net) (Mazar Software, 305-936-9290) for more information. Eric Haines


Bitmap Textures for 3D objects

> I'd like to known if I can find bitmap textures for 3D objects.

FTP anonymously to ftp.cdrom.com and look in /pub/aminet/wb. I'm pretty sure that this is the right directory... Anyway there are 5 volumes of 'WallPaper' for the WorkBench background. I think it's about 65-70 files in all... These are mostly IFF images, which make great textures for ray tracing. I use many of these for my objects in Real3DV2. Dean Pompilio (dean@cssmp.corp.mot.com)


From comp.binaries.ibm.pc, posting-number Volume 25, Issue 075:

This is POV-Ray ray tracer for IBM's. It runs in 32-bit protected mode with the included dos extender. I am fairly certain this is only compatible with 486 DX and DX2's. It's at least 2 times faster than the standard mode compilation of pov-ray. Enjoy. [FTP from ftp.uml.edu in cbip/volume25/075/ pov20z4y/*] Ritchie Hunt (unicorn@acs.bu.edu)


There is a new version of the enhanced Standard Procedural Databases package, due to the efforts of Eduard Schwan, Philipp Slusallek, and myself. The SPD package (which generates various standard test scenes for testing ray tracer efficiency) now outputs RIB and DXF format files, and there are now both DXF and NFF reader programs to convert from these formats to many others (POV, Rayshade, etc etc). The model generators themselves have not changed, nor have the previewing capabilities. FTP from princeton.edu in pub/Graphics/SPD (there are also PC and Mac versions there). Eric Haines


Lego Rayshade Images and Files

I've uploaded ray_car.gif to earthsea.stanford.edu in pub/lego/uploads. It is a computer generated instruction sheet for building a small LEGO racecar, mostly to demonstrate the new wheel and tire pieces in my LEGO modeling library for Rayshade. The source to create the image is in pub/lego/cad/click/examples/car, plus you will need the file pub/lego/cad/rayshade/legolib.ray and the Click compiler (and Rayshade, of course). Image splicing and the shaded background were done with tools from the URT toolkit. Paul Gyugyi (pjg@tesla.esl.com)


Walnut Creek CD ROMs

These guys are masters at grabbing stuff off of the Internet and putting it on disks. They'll be publishing Chris Cason's ray tracing disk.

The most current version of [the Walnut Creek] catalog is available via anonymous ftp from ftp.cdrom.com:/pub/cdrom/catalog, by fingering info@cdrom.com, or you can request it by sending email to (the human at) info@cdrom.com.


Palette Selection

>I am doing images that will/may be incorporated into
>a computer game with a specific palette. The results I get when I use
>piclab, image alchemy, etc just aren't good enough "most" of the time.

You aren't going to get acceptable results with Image Alchemy, from my experience. Piclab generally works quite well, but it does have certain situations where it falls on its face. Stephen Coy's CONVERT is my favorite in general. Try using DTA to create a common colormap from all of the Targas. Dan Farmer (Dan.Farmer@TGA.damar.com)


Amiga Rayshade Port

I've uploaded my amiga port of rayshade 4.6pl2enh2 on aminet. I believe it is much more complete than the previous port. It can be found in gfx/3d/RayShadeNew.lha, and is 1.1M big. The archive contains source, documentation, example files, and binaries compiled for a 68020+68881 or higher configuration.

Among the new features of this port are:

* Utah RLE support.
* Several RLE utilities.
* CPP support.
* Raypaint.
* Numerous patches from the rayshade mailing list.
* Improved memory allocation that permits rayshade to allocate up to twice the
  amount of memory than with the standard memory allocator.
* -L switch to invoke the SAS/C preprocessor, if you have it. Slower than GNU
  cpp, but can preprocess things like #include "huge_file", on which cpp
  runs out of memory on the Amiga.

	Kriton Kyrimis (kriton!kyrimistheseas.ntua.gr@Princeton.EDU)


Bresenham and Convex Polygon Renderer Code [soon...]

I just sent an article to PCVR magazine that covers [Bresenham's line drawer and more]. It includes working, tested, source code for a fixed point convex polygon renderer. It will appear in a few months :-( until then I can't post anything from the article because PCVR has first publication rights.

The source code from previous issues of PCVR is starting to show up on the net and it is available from their BBS. There are some real gems in there. [does anyone know more about this, i.e. where PCVR is located? -EAH] Bob P. (bobp@bga.com)

back to contents

POV-Help, by Chris Cason (cjcason@yarrow.wt.uwa.edu.au)

POV-Help is about to be released and I need some people to beta test it.

POV-Help is a hypertext help reader that runs under DOS and can pop-up over your editor (or run stand-alone.) It provides an on-line reference to both the official Docs and the POV-specific FAQ. This is convenient when coding new scenes, especially if you are new to POV.

If you want a copy, please email povray@yarrow.wt.uwa.edu.au with the message SEND POVHELP in the body. If you don't hear back it's probably because your address bounces our replies. Please don't distribute copies yet, and please DO let me know of any problems.

back to contents

Lenticular 3D, by Keith Rule (keithr@europa.com)

A while back I asked for some help finding a lowcost service bureau for creating lenticular 3d images. I got several interesting replies so I thought I would answer some of questions folks asked.

1) What is lenticular 3d?

   It is a process that allows 3d images to be made with a plastic prizmic
   face and several image behind.  This allows different images to be view by
   each eye giving a 3d effect without any special viewing device.  There are
   currently a couple of cameras on the market the allow lenticular images to
   be photographiced.  They are manufactured by ImageTech (404) 416-8848 and
   are less than $100.

   [Sorry if this is completely technically accurate, I'm not expert on this

2) Why can't take photos off of the computer screen or use a ordinary service
   bureau to create lenticular images?

   I want to use the ImageTech consumer lenticular process (because it's very
   inexpensive at ~$1 per 4x5 image).  They require a 35mm negative in an
   unusual format (3 consecutive half-frame images with very specific
   spacing).  This is an unusual request for most service bureaus.

I finally found a fellow who can create the appropriate negative from 3 2048x1536 Resolution TARGA files. His charge is $75 and his turnaround time is suppose to be around a week.

If you are serious about creating a lenticular image from your renderings drop me a note and I will send you the name of this fellow (please be serious about this - this guy does this part-time so doesn't need to be bothered by looky-loos). He will create the negative you need for ImageTech's lowcost process.

back to contents

POV Official News, Issue #1, POV Team (povray@uniwa.uwa.edu.au)

[I normally won't include these, since you can retrieve them from the various archives; since this is the first, it seemed worthwhile. -EAH]

This is the first of a series of irregular bulletins about POV. This is an official POV-Team publication.

They will be issued only when there is sufficient news to report to make it worthwhile, and will be posted to comp.graphics and comp.graphics.raytracing from time to time.

Responses to this article should be placed in comp.graphics.raytracing to gain the attention of the POV-Team. A POV-Team member usually checks this every couple of days.

Email to Team Members

Recently, a couple of incidents have occurred where users on the internet have emailed large files to POV team members on Compuserve. POVDOC requests that this NOT be done without prior arrangement. Compuserve charges on a per-kilobyte basis for such mail and the most recent occurrence cost the POV-Team member in question US$30.00 in charges. What's worse, most of the information sent (a custom version of POV complete with all source, scene files, &c) was redundant. PLEASE ask first before sending any large email to anyone on Compuserve !!!

New POV FTP Site.

The main official site for POV is alfred.ccs.carleton.ca (

uniwa.uwa.edu.au [now ftp.uwa.edu.au] in pub/povray is the new official secondary distribution site for official POV-Ray files. It also carries a good selection of unofficial files (but no unofficial compiles).

uniwa, BTW, is a hub so should give you pretty good response.

If you want to get POV but are unsure of what files you need, grab POVINF.DOC from one of the abovementioned sites.

A listing of some of the more relevant current contents of uniwa may be obtained by performing a finger on povray@uniwa.uwa.edu.au, or by retrieving the file CONTENTS_PLEASE_READ from uniwa.

Some utilities of note - MORAY (1.5 of course !), SUDS, CTDS, POVCAD, TGA2GIF, TTG, DXF2POV and RAYLATHE, just to mention a few. The contents file gives a more specific description, explaining what each one does.

The uniwa site is also currently mirrored (once a week, on Sundays) at wuarchive.wustl.edu in /graphics/graphics/ray/pov/official-archive.

We can't guarantee how up-to-date this mirror is as we do not have control of the mirroring process, but expect that it will be pretty good.

Image of the Month !

The image of the month for April is FROSTY by Dan Farmer, a POV classic ! This image also featured in the book Ray Tracing Creations by The Waite Group. it is available at the below site as IMAGE_OF_THE_MONTH.TGA/JPG, 800x600x16m. Looks even better if you have a hicolour or truecolour card !

It is also available in the HALL_OF_FAME subdirectory as FROSTY.GIF.

For those with Compuserve access, a full range of high-quality images done with POV-Ray and other raytracers can be found in GRAPHDEV section 3, 'Hall of Fame'. Since the POV-Team is based on Compuserve and not the internet, GRAPHDEV is the best place to get up-to-date POV info, though the uniwa and carleton sites will be maintained on a regular basis.

Official Files

The most current POVDOC*.???, POVSCN*.???, POVIBM*.EXE and POVSRC*.??? files. These are in the top-level directory, pub/povray. Only official files are found here. Unofficial files are in subdirectories.

All official archives have the current version appended to them, therefore, POVDOC.ZIP is POVDOC-2.2.ZIP. Note that all files are actually stored as lower-case ; the use of capitals is just for this newsletter.

Hall Of Fame

The above FTP site has a HALL_OF_FAME subdirectory containing a selection of some of the best images around today ! Mike Miller and Truman Brown feature strongly.

You are encouraged to provide submissions for this library, the only requirement being that the image is traced with POV-Ray.

Truman Brown's WOILD series features strongly, and I encourage people to check them out. The source for some of these is available and I will put it up if there is enough requests, and the author OK's it.

Images have more chance of remaining on the site permanently if they have a scene file accompanying them. Incoming scenes should have a description (in a .TXT file or zipped up with the scene) and can be placed in incoming/scenes.

Retrieve CONTENTS_PLEASE_READ or finger povray@uniwa.uwa.edu.au for more detailed submission criteria.


Apart from the above, there is an images and scenes (image source) sub- directory for non-Hall Of Fame-type images. Contributions most welcome.

BinHex files

Several MAC users have had problems downloading the current MacBinary SEA archive format on the internet, and have requested binhex'ed files to be made available instead.

Official binhex'ed archives have been produced and are up at uniwa now. If anyone has problems with these files, please let us know.

Help Reader

An official POV-Ray hypertext-based help system has been produced and will be released once the current work on FAQ's (both here and on Compuserve) has been completed. Designed to be portable, the reader currently only runs under DOS but will probably be ported to UNIX as soon as time is available to do so.

The help database itself is portable and eventually will probably have back ends to create native (i.e. Windows, Mac) help files as well.

back to contents

A Quick Explanation of Radiosity Computation vs. Output, by Steve Hollasch (hollasch@kpc.com)

Solving for radiosity is a separate pass from rendering the resulting scene. Any system that can display realtime graphics (with Gouraud shading) can display a realtime session derived from a radiosity solver. Thus, you basically wait a bit for the radiosity solution of a scene, and then you take the resulting geometry and view it in realtime. [As a bonus, no shading equations have to be computed for the scene during display, as the colors are attached to the vertices of the polygons output. This often means radiosity output is faster than databases shaded on the fly. -EAH]

This is true for classic radiosity, anyway, since it's independent of view. However, some hybrid approaches which also incorporate specular reflection, true reflection, or refraction are view-dependent, and so require extra footwork to do the viewing. In addition, some systems allow for interactive adjustment of the lighting parameters (e.g. light color or intensity), which means that the radiosity solution has to be recalculated.

back to contents

A Grand Unified Modeller (GUM), by Lex van der Sluijs (Alexander.vanderSluijs@stud.io.tudelft.nl)

After nearly a year of hard work I am very proud to present to the world

	       GUM - A Grand Unified Modeller (to be)

A direct-manipulation-based 3D modeller that exports to POV, Polyray and Rayce.

Some highlights:
 - CSG evaluation
 - realtime pan, zoom and camera operations
 - select by pick, window, crossing, hierarchy-view
 - grid, snap
 - very flexible fastdraw (full, skip, box, multiple viewport)
 - printing
 - metafile export
 - (almost) full shell of all raytracers (also exports batchfile)
 - realtime bezier patch editing
 - all transformations available in user-view and multiple orthogonal views
 - user-definable boundary representations for objects with a surface.
 - text-based texture editor for all tracers, also reads available texture files
 - imports RAW.

Platform: Microsoft Windows 3.1 or 3.11
System requirements: resolution 800x600 or higher. 4Mb should do. CoPro.
486 (highly) recommended

The demo is free but there is a limitation to the maximum number of objects that can be saved of 25. Special introductory price: $50

Gum has been uploaded to:

Internet: wuarchive.wustl.edu /pub/msdos_uploads/win_graphics/gum_0b8.* alfred.ccs.carleton.ca The upload has yet to be validated.

CAD BBS Amsterdam +31-20-6861533

The author's address:
2:281/500.4 in Fidonet
or leave a message on the above BBS to Lex van der Sluijs

[This thing takes a little messing around to set up, but seems pretty cool. EAH]

back to contents

New (at least to me) Bulletin Boards, collected by Eric Haines

The Tackle Box BBS (405) 359-3301

100DEDICATED to Ray Tracing!!!!

Over 2 GIG online with 40 file areas. Now featuring the 'Tracers and Tracings CD-ROM'!! Now over 5,500 files!!!

File areas include: Graphics Programs, Ray Traced Images, Hall of Fame Images, POV-Ray scene files, POV-Ray utilities, POV-Ray Modelers, Graphics Converters, Ray Traced Animations, OBJ objects such as Viewpoint Engineering (from avalon site), Textures, Fractal Programs, Virtual Reality, Graphics Source code, and MUCH MORE!

Access is FREE with downloads on the very first call. Subscriptions are available for only $20 for a whole year. (70 min/ 2MEG per day)

The Tackle Box BBS is the largest Ray Tracing and Graphics BBS in the entire SouthWest, providing support for the OKC PC-User's group on Graphics and Ray Tracing. Why not check it out??

2400-14.4 baud, 24 hours a day.

Neil Clark
SysOp - SIG Leader
E-Mail: clark@qns.com


Eminent Illusion BBS

RUN! \/\....... To The Eminent Illusion BBS for Windows 3.1
(Dedicated to computer graphics thru advanced mathematics)

		  (513) 866-8181

A _NEW_ Ray-Tracing Site. We support POV and PolyRay. A User Group is forming for local traceaholics and fractal fanatics.

If you are a traceaholic, _PLEASE_ upload IBM specific utility programs and .POV or .PI scene files. No GIFs or .TGAs please. Still waiting on my big hard drive for those .

No hassle registration. You call, your registered. Nuff said. 90 min/day (On first call!) and 2 meg daily DL limit. NO RATIOS, No fees. Got money, want friendly users. Currently servicing 138 members from around the country.

CICA (Center for Innovative Computer Applications) CD now on line (current thru 12/93). We also carry lots of custom Ray-Traced GIFS.

Anxiously awaiting your handshake at 2400 to v.32bis (14.4k)

	  486DX-33 and U.S. Robotics

The most exciting BBS software to come into existence is Excalibur. It is a true Windows GUI, written for Windows, requiring Windows. I am a site beta tester. Use of the board requires a dedicated terminal program which will be automatically downloaded on your first call. Now supporting Zmodem downloading of the terminal program. Once you have seen the board, you will wonder why it took so long.

The system offers graphics *Previews*, view GIFs while downloading. True multi-tasking BBS! Upload and Download simultaneously! Read or write messages while D/Ling and it's all point and click. No menus to memorize. No more waiting for downloads to finish before doing something else. Sound support using .wav files. No sound card needed. Screen updates faster than ANSI or RIP. It's FANTASTIC!

Full 24 hour operation. Sometimes down 9am-12am M-F EDT (maint)

30,000 files available. Always 700 meg on line. 1 gig and second node coming in May. FIDO and Usenet by September.

BTW, If you run Windows under OS-2, you will be able to call.


For those of you into ray tracing... There is a BBS in San Diego, CA, that has a lot of support programs for making images of this type. I would give more info but I don't know much about the programs that are involved. Here is the bbs # (619)426-7760 [Anyone know the name of this one? -EAH Shadowhawk (shdwhawk@netcom.com)

back to contents

GemCAD Review, by Greg Prior

[something that popped up on rec.crafts.jewelry - EAH]

Clive Washington (pazcw@unicorn.ccc.nottingham.ac.uk) writes:
>... Do you mean there's a
>computer package to design facet cuts? Could you mail me the
>supplier's address so I could get some details, please? I'd need
>a Mac version.

GemCAD is a shareware program. There is no version for the Mac, however the custodian for this list, Tom Greenwalt (tomg@mishima.mn.org), has a copy of the DOS version available to download. There are also some design files. We would like to see this library build up if you care to make any contributions. I almost always do my design first in GemCAD before cutting. This allows me to cut the stone once on the computer before learning on the real thing! It also makes for easy tangent-ratio angle conversions, and ray tracing to optimize for brilliance.

Or you can get it direct for $50 + $5 for international shipping from the author:

Robert W. Strickland
6408 Earlyway Dr.
Austin, TX 78749
(512) 892-1887

He has several add-on modules available too: "Raytrace" and a couple of print/plot utilities.

back to contents

A Summary of the Reyes Algorithm, by Steve Demlow (demlow@cis.ohio-state.edu)

[I thought this summary would be useful for people who don't really know how RenderMan works - it's a unique architecture. -EAH]

REYES refers to a system based on 'micropolygon rendering', wherein all primitives are broken down into small polygons which are of size ~ 1/4 pixel in image space and rendered using a scanline technique. Texture mapping is then used to get all the nifty effects associated with high- quality rendering. There is no ray tracing involved, since one of the stated goals of the REYES system was to render images quickly - a full length feature in a year, or roughly 3 minutes per image. The '87 REYES paper refers to the Cook paper regarding motion blur and the other nifty stuff that Cook used ray tracing for, but Cook also mentioned that the same ideas were applicable to scanline renderers.

back to contents

Version 1.7 of Polyray Available, by Alexander Enzmann (70323.2461@CompuServe.COM)

Polyray is a rendering program for producing scenes of 3D shapes and surfaces. Polyray supports raytracing, polygon scan conversion, wireframe preview, and raw triangle output. All the normal primitive objects are supported (box, sphere, cone, ...). Many more advanced primitives are also supported: height fields, Bezier patches, NURBS, arbitrary functions of three variables, parametric surfaces, TrueType style glyph objects...

Texturing is provided using standard shading models for your favorite plastic look, as well as textures based on runtime variables (some folks call this sort of thing shaders).

The files associated with Polyray are distributed in several archives:

   PLYEXE.ZIP - Executable requiring a 386/387 or 486DX
   PLY386.ZIP - Executable that will run on any 386 or 486SX
   PLYDOC.ZIP - Documentation
   PLYDAT.ZIP - A whole bunch of sample images and animations, ready to
   PLYUTL.ZIP - A couple of useful utilities (necessary to extract
		TrueType font information into a form Polyray can use)

You want all of them.

The following lists some of the more significant enhancements made to Polyray since version 1.6.

     o  Parametric surfaces.
     o  Bump maps
     o  Support for JPEG  and GIF images in textures, etc.
     o  Can now call an external program from within Polyray (system).
     o  Significantly enhanced the "function" object.
     o  Added NURBS objects.  (Sorry, no trim curves yet.)
     o  Added a glyph object to support TrueType style extruded
     o  Support for simple particle systems.
     o  Many VESA display modes now supported
     o  Way better antialiasing

If you registered a previous version then you should be getting a floppy in the mail. Please contact me if it doesn't get there.

back to contents

Use of External Program Calling for Polyray, by Alexander Enzmann (70323.2461@CompuServe.COM)

[I asked, "What's the external program calling used for?" in the new Polyray]

During the course of an animation you may want to invoke another program to create include files. This can be accommodated by using something like the following lines in the data file:

   system("foo ", frame, " > foo.inc")
   include "foo.inc"

Polyray calls the program (using DOS) with the current value of the frame counter passed to it. The resulting output gets dumped into foo.inc. The next line tells Polyray to parse the contents of foo.inc. I've used this in conjunction with a C program to make data and CTDS to process the data and generate the include file. An excerpt is:

   // Call the program "spiral2" with both the frame number and the
   // total number of frames in the animation.  The output will be
   // data ready to go for CTDS
   system("spiral2 ", frame, " ", total_frames, " > spiral2.ctd")

   // Call CTDS to process the data created by the spiral program.
   // The object will have the shiny_red texture
   system("ctds -i spiral2.ctd -o spiral2.inc -p -tu shiny_red")

   // Now read in the data created by CTDS
   include "spiral2.inc"

The program spiral2 creates points and radii on a nice loopy shape. The radii are modulated by a sine wave over the course of the animation. The code is:

main(int argc, char *argv[])
   double a = 10.0;
   double b =  5.0;
   double c =  5.0;
   double x, y, z, t, r, theta, phase;
   int frame_num, frame_count, steps = 1024.0;

   frame_num = (argc > 1 ? atoi(argv[1]) : 0);
   frame_count = (argc > 2 ? atoi(argv[2]) : 60);
   phase = 2.0 * M_PI * (double)frame_num / (double)frame_count;

   for (theta = 0.0;
	theta < 2.0 * M_PI;
	theta += 2.0 * M_PI / steps) {
      t = sqrt(1 + c * c * cos(a * theta) * cos(a * theta));
      x = b * t * cos(theta);
      y = c * cos(a * theta) + 6;
      z = b * t * sin(theta);
      r = 1.25 + sin(3 * theta + phase);
      printf("0.000000 0.000000 0.000000 0.000000\n", x, y, z, r);

Clearly, since the program is invoked for every frame and DOS doesn't support concurrent processes & pipes, the external program either has to be able to create all the information given only frame number, or it has to have its own persistent store of intermediate results.

back to contents

POV-Ray Legal Stipulations Correction, by Dan Farmer (70703.1632@CompuServe.COM)

In Peter Campbell's article on Optimized POV, you (trying to cover our butts, I'm sure) claimed that "the POV developers have asked that exe.s other than theirs not be distributed..."

Well, that's no longer entirely true. As of the 2.0 release, the legal stipulations about distributing executables have been made a bit more tolerant. We now allow them to be distributed, but only under the conditions explained in the POVLEGAL.DOC file. In essence, the stipulations state that the user must support the compilation, must use a special header file that includes information about how to contact the originator, and must contain the full distribution package.

BTW, I agree with Peter that the DJGCC version is almost as fast as the Watcom version, with fewer problems. That's what I do all of my POV compiling with. Watcom compiles have been subject to drastically overrated benchmarks in the past. One reason for this is that certain chipsets (OPTI 486/33 is one, I think the other is called Symphony or something similar) have a known problem with the ICB compiler that causes ICB programs to run at about 1/2 the speed that they run on other chipsets. I personally had this problem with the OPTI set until I upgraded to a 50 MHz motherboard. Upon checking with these Watcom worshippers, I learned that they often had an OPTI chipset. I'd recommend that these folks get ahold of a DJGCC version.

back to contents

3D Graphics Book List, by Brian Hook (bwh@beach.cis.ufl.edu)

{All is the opinion of the author and no one else}

[A long article, but I haven't had a full book summary of the classics here in years, and there are also some mentioned which I've never seen. -EAH]

In the course of attempting to write games, simulators, and virtual reality applications for the PC I've run across an amazing lack of information on how to program 3D graphics. The problem, actually, wasn't LACK of information, it was lack of information that told where the information I needed WAS! So, in an attempt to help other budding 3D programmers get the necessary literature for programming, here is a list of books that I've found useful.

Some of these references were taken from the comp.graphics FAQ, but the reviews were done by myself. I am personally interested in interactive real-time 3d graphics, so stuff on advanced rendering, radiosity, or raytracing is not of huge significance. [even so, the reviews do cover books in these areas. -EAH] I have not seen many of the "Bibles" of graphics -- Newmann and Sproull, Burger and Gillies, etc. but I hear they are invaluable so they may be worth a peek. I could special order them, but I don't have 50 bucks lying around just to take a risk.


* Advanced Animation and Rendering Techniques, Alan Watt, Mark Watt, Addison-Wesley 1993, ISBN 0-201-54412-1 Computer Graphics: An Introduction to the Mathematics and Geometry, Michael Mortenson, Industrial Press 1989, ISBN 0831111828

* Computer Graphics: Principles and Practice (2nd Ed.), J.D. Foley, A. van Dam, S.K. Feiner, J.F. Hughes, Addison-Wesley 1990, ISBN 0-201-12110-7

* Mathematical Elements for Computer Graphics 2nd Ed., David F. Rogers and J. Alan Adams, McGraw Hill 1990, ISBN 0-07-053530-2

* 3D Computer Graphics 2nd Ed., Alan Watt, Addison-Wesley 1993, ISBN ????

* 3D Computer Animation, John Vince, Addison-Wesley 1992

* Flights of Fantasy, Chris Lampton, The Waite Group 1993, ISBN 1-878739-18-2

Graphics Gems, Andrew Glassner (ed.), Academic Press 1990, ISBN 0-12-286165-5

Graphics Gems II, James Arvo (ed.), Academic Press 1991, ISBN 0-12-64480-0

Graphics Gems III, David Kirk (ed.), Academic Press 1992, ISBN 0-12-409670-0 (with IBM disk) or 0-12-409671-9 (with Mac disk)

* Procedural Elements for Computer Graphics, Osborne McGraw-Hill 1985 0-07-053534-5

    * I personally have seen/used/own this book


Programming graphics (especially real-time graphics) involves a lot of optimization and efficiency considerations, which means that to program graphics well you must be able to PROGRAM well. Some other books on programming that I have either heard rave reviews about or, even better, I own and consider invaluable, are listed here with a very short description. Skip this part if you don't care (but you owe it to yourself to at least give these books a look).

The Art of Programming, vols. 1-3, Donald Knuth, Addison-Wesley

THE Holy Trinity of programming in general. I don't own any of the three books, mostly because I don't have 150 dollars handy. The books, however, are considered classics and have some of the most exhaustive analyses of various algorithms in print.

* The Mythical Man Month, Brooks, Addison-Wesley

A wonderful book on how to and how NOT to manage a large project. Not of much use to a single programmer, but for someone who must program as part of a team this book is a MUST have. Very entertaining reading. Dated, but relevant nonetheless.

* Introduction to Algorithms, Cormen, Leiserson, and Rivest, McGraw-Hill

A great book on algorithms and data structures....more digestible than Knuth's "Art of Computer Programming" and more up to date, but not quite as comprehensive...sort of a "Knuth Lite" if you will. I've found it to be my primary reference on algorithms and data structures.

* Algorithms (in C/C++), Robert Sedgewick, Addison-Wesley

Considered a modern day classic, there are actually three books: Algorithms, Algorithms in C, and Algorithms in C++. They are the same book, just in a different language. I am familiar with the "Algorithms in C" book. It is has some bugs in the code, and the text can be a little terse, but it is still a useful book. More implementation oriented than "Introduction to Algorithms" -- sort of a "Knuth Lite Lite". Used to be my primary book on algorithms until "Introduction to Algorithms" kicked it out of first place. Still a good book though, and I refer to it a lot.

* Programming Pearls and More Programming Pearls, Bentley, ????

Great books -- kind of pricey though. Litte anecdotes and stories about programming "way back when", but some of the lessons on optimization and invaluable for day to day programming tasks. Really good books, but just kind of expensive for their size (they're more like pamphlets really). If you have some extra dough, buy these books, but they aren't real necessary.

* The C Programming Language, 2nd Ed., Kernighan and Ritchie, Prentice-Hall

If you don't know C, buy this book NOW. Great C reference, eminently readable. Wonderful wonderful book. If you do know C already, then you probably already OWN this book. If you are learning C and trying to do it with some lame SAMS/Que/MIS Press/M&T/Wiley/McGraw-Hill cheezy trade paperback with a title like "Using Borland C++" or "C in 21 days" or "Learning C" or "Using C" or "Learning C by Example" then you are doing yourself a disservice. Get this book instead.

[p.s. personally I like Harbison and Steele's _C: A Reference Manual_, Prentice Hall, for reference - EAH]

* The C++ Primer, 2nd. Ed., Stan Lippman, Addison-Wesley

Everything that goes for "The C Programming Language" above applies here also. I like this book a bit more than Stroustrup's "The C++ Programming Language" but to each his own.

* Advanced C++, 2nd Ed., Coplien, Addison-Wesley

Great book on using C++ to solve real-world problems. Invaluable if you are trying to write a graphics package in C++ and need to balance ease of use, readability, "correctness", and efficiency. Pretty bad indictment of the C++ language, actually, since it shows the ugly messes that you have to go through in order to make C++ act like a true OOP language like Eiffel, Sather, or Objective-C.

Okay, now onto the graphics stuff....


Most of these books assume that you have a fairly firm grasp of trigonometry, matrix and vector math, and possibly some other stuff. Some of the books give a quick summary of the above, and Flights of Fantasy sort of weasels out on the whole deal by letting you ignore the nitty gritty math stuff -- but be forewarned, Flights of Fantasy is pretty weak material as far as "advanced" stuff goes and you probably won't learn a lot from it beyond the very basics.

The books are categorized as either being BEGINNER, INTERMEDIATE, or ADVANCED. Simple test (pretty crappy one, but it works for now): see how many of the following phrases you are VERY familiar with -- i.e. you know the literal definition of it.

plane equation
dot product
cross product
normalized/unit vector
normal to a plane
matrix inverse
identity matrix
similar triangles
parametric equation
linear interpolation
column vs. row major matrices
right-hand/left-hand coordinate system
orthogonal matrix
orthonormal matrix
pure rotation matrix



Lee Adams' books suck suck suck suck suck. Bad. Period. I cannot stress to you how badly his books suck. The code is horrible, the text is horrible, the performance of his code is horrible, his algorithms are horrible, EVERYTHING about his books is horrible.

TITLE: Advanced Animation and Rendering Techniques
AUTHOR: Alan Watt and Mark Watt PUBLISHER: Addison-Wesley FOCUS: Photo-realistic images and animation LEVEL: INTERMEDIATE/ADVANCED

This book is by far one of the best books in the field of 3D graphics. [I definitely agree. - EAH] Most of it covers static rendering and ray tracing, which means it is not very useful for real-time graphics (like 3D on a PC, for example). The authors don't feel you are in "real 3d animation" territory until you have a Z-buffer working and an incremental shading algorithm (preferably Phong) with 24-bit true color. Needless to say, few PCs have ANY of the above real-time capabilities.

Even so, the stuff it covers is invaluable and very difficult to find elsewhere. We are talking heavy rendering and ray tracing stuff, volume rendering techniques, shading languages, quaternions and Euler angles, radiosity, inverse/forward kinematics, etc. Excellent book, but not very useful if you are looking to write only a game (although the chapters on segmented object animation would be useful for robots/tanks).

TITLE: Computer Graphics: Principles and Practice, 2nd Edition
AUTHOR: Foley, Van Dam, Feiner, and Hughes PUBLISHER: Addison-Wesley FOCUS: EVERYTHING LEVEL: ALL

As Knuth's "Art of Computer Programming" is to algorithms, this book is to computer graphics. THE reference. It covers just about every topic you need to know, however because of its scope it is very generalized and so information on any one specific topic may be lacking. Pascal-like pseudo code is strewn liberally throughout the book, which is a big help. Everything you would expect in 3D graphics is covered, including shading, ray tracing, radiosity, texture mapping, etc. Once again, it's very generalized and serves mostly as a good reference to other material and an overview of individual areas. But at over 1000 pages, it's a must have if you do graphics. If you can afford only ONE book on graphics, get this one.

TITLE: Mathematical Elements for Computer Graphics, 2nd Edition
AUTHOR: David F. Rogers and J. Alan Adams PUBLISHER: McGraw-Hill FOCUS: Math of computer graphics LEVEL: ALL

Excellent book on curves, patches, and a lot of math. Does not cover rendering at all -- no shading, etc. It does a lot of theory on transformations in general, especially on the basics of matrices and how they apply. Great stuff on projections, too. Lots of theory. Don't expect too much on object databases or implementation efficiency -- this book is about math and theory, not implementation. Sucks as a reference on rendering algorithms, but for modeling in general and math it's wonderful. Also, it has an insane amount of stuff on curves, splines, Bezier curves, NURBS, Coons patches, surfaces, and basically anything that has to do with math and graphics, get this book. One of the few McGraw-Hill books I've liked (the other is "An Introduction to Algorithms" and Rogers' other book "Procedural Elements for Computer Graphics"). This book is great as a companion volume to PECG.

TITLE: 3D Computer Graphics, 2nd Edition

This is also one of those classic texts. The new second edition covers a lot of ground. Watt's style is highly readable, and the code is in Pascal. A complete rendering system (or two) is supplied in the appendices, along with the data file for the Utah teapot.

If you do 3d graphics, you MUST have this book.

Interesting note: the author (and I) prefer the left-handed coordinate system because it tends to be more intuitive than the right-handed coordinate system, which is preferred by mathematical types. Watt stubbornly refuses to switch to the right-hand coordinate systems (which Foley and Van Dam et. al. and PHIGS/PHIGS+ have done).

Chapters include:

1.  Three-dimensional Geometry in Computer Graphics
2.  Representation of Objects
3.  Viewing systems
4.  Reflection and Illumination Models
5.  Rendering Algorithms
6.  Parametric Representation and Practice
7.  Shadows and Textures
8.  Ray Tracing
9.  Volume Rendering
10. Radiosity
11. Anti-aliasing
12. Functionally Based Modeling Methods
13. Three-dimensional Computer Animation
14. Colour Spaces and Monitor Considerations
A.  Viewing Transformation from a Simple Four-Parameter Viewing
B.  A Wireframe System
C.  An Implementation of a Renderer
D.  The Utah Teapot

The book has a fairly decent mix of interactive and photorealistic stuff, and it is an excellent supplement to the 3d graphics section of Foley and Van Dam. Between the two you are pretty well set for 3d graphics.

TITLE: 3D Computer Animation

Excellent book on 3D animation in general. Don't get the wrong idea, however, because it's not about coding 3D animation libraries. It's about the field of 3D computer animation. It's got a lot of technical stuff and discusses a lot of the stuff in the field of 3D computer animation, including packages available and the technology involved in the field. A damned good book, and if you do animations then it's a must have. Some of the algorithms described in it are real nice, and since it's recent it's got some good information on newer rendering algorithms that some other books don't have. Highly recommended.

TITLE: Flights of Fantasy
AUTHOR: Chris Lampton PUBLISHER: The Waite Group Press FOCUS: Writing a 3d flight sim for the PC LEVEL: BEGINNER

A lot of controversy has been caused by this book, not because of its content but because of widely varying opinions as to its quality. Personally, I think that it is a great beginner's book, however the rendering engine is incredibly primitive and inefficient. It doesn't cover shading, gradient fill sky lines, etc. The renderer iis incredibly crude -- if you are expecting something that will let you do a commercial game, keep looking. It dodges the math bullet fairly well, which I don't like since if you REALLY want to know 3D graphics then you are going to need to know the math. A nice thing about the book is that it covers some topics that are hard to find elsewhere, such as joystick programming, etc. It doesn't cover advanced video modes (320x240 or 320x400), SVGA programming, digitized sound, shading, etc. A great beginner's book, but you'll outgrow it soon enough.

TITLE: Graphics Gems I-IV

Some people swear by these books. I don't know. They cover a lot of little tricks and tips for a lot of little things, but personally I haven't found much use for them, but I'm looking only at the interactive 3D side of things. Every now and then a friend tells me "Wow, this one little paragraph in Gems [X] gave me a huge insight into what I needed to do and now my [program] is MUCH faster". So to be fair, a lot of others have found these books to be invaluable. They cover a bit too much ground for me, so I'm still kind of hesitant on recommending them to others since it's not readily apparent if they will be helpful to you. Your mileage may vary.

TITLE: Procedural Elements for Computer Graphics

This is another book by the author of "Mathematical Elements for Computer Graphics". This book covers a lot of the stuff that MECG doesn't cover. Rogers' style is, in my opinion, incredibly dry, but then again, this is a reference book and not "Gone With the Wind". It covers most of the major algorithms out there and explains enough where you can get some reasonably decent working code from it. As a basic reference it is EXCELLENT and HIGHLY recommended. However if you own most of the other books (Foley and Van Dam, Watt's, Watt & Watt) then this book isn't going to be a big eye opener -- no new algorithms are described, so if you know all of the major ones then this book is going to be redundant. HOWEVER, if you haven't started building up your library yet, then this book is a great start. A wonderful computer graphics algorithm reference. Rogers positions this book as the logical followup to MECG, and I agree completely. For example, MECG covers a LOT of ground in areas such as coordinate transformations, perspective, etc. whereas PECG doesn't cover ANY of the aforementioned subjects. It stresses rendering algorithms typically at the polygon level, such as hidden line/surface removal, shading, etc. If you don't know your transformations, this book isn't going to teach you. As a quick reference, this book is great, too ("Gee, how do I implement a scan line Z-buffer again?....").

back to contents

Eric Haines / erich@acm.org