General Rayshade Information


Rayshade is a system for generating ray-traced images. Rayshade's main function is to read a multi-line ASCII file describing a scene to be rendered and produce a file containing the ray traced image.

Rayshade features:

  • Ten types of primitive objects (blob, box, cone, cylinder, height field, plane, polygon, sphere, torus, flat- and Phong-shaded triangle)
  • Use of uniform spatial subdivision or hierarchy of bounding volumes to speed rendering
  • Constructive solid geometry
  • Point, directional, extended, spot, and quadrilateral light sources
  • Solid procedural texturing, bump mapping, and 2D "image" texture mapping
  • Antialiasing through variable-rate sampling
  • Arbitrary linear transformations of objects and texture/bump maps
  • Rudimentary animation support
  • Options to facilitate the rendering of stereo pairs
  • Easy addition of new geometry, textures, light sources, and other features
  • The rayshade distribution consists of the rayshade source code (C, lex, and yacc), example input files, a fifty-page User's Guide, and tools to convert scene-descriptions from various formats into that used by rayshade.

    Rayshade has been tested on many different UNIX-based computers, including: SGI 4D, IBM RS6000, Sun Sparcstations, Sun 3&4, DECstation, Apollo DN10000, NeXT, HPs, and so on. If your machine has a C compiler (non-ANSI OK), enough memory (at least 4Mb), and runs something resembling UNIX, rayshade should be fairly easy to port.

    Rayshade has also been ported to non-UNIX platforms, including MSDOS, the Macintosh, the Amiga, and OS2.

    Rayshade uses yacc and lex to process input files. If you do not have lex and yacc, try to get flex and bison from the Free Software Foundation folks (ftp to ftp.gnu.ai.mit.edu ).

    Normally, rayshade makes use of the Utah Raster Toolkit. You are encouraged to get a copy of the toolkit, as it provides a host of useful tools for image manipulation and a library for reading/writing the toolkit's "RLE" format image files.

    If you do not want to or cannot use the Utah Raster toolkit, rayshade can be configured to create image files using a generic format identical to that used by Mark VandeWettering's "mtv" ray tracer.

    Rayshade comes with a fifty-page Users's Guide as well as a quick-reference sheet. To create a formatted version of the User's Guide, you'll need LaTeX. If you don't have LaTeX, a postscript version of the Guide is available via anonymous ftp from the rayshade FTP archive.

    Rayshade was not designed to be, nor is it, the be-all and end-all of ray tracers. It was meant to be reasonably fast, portable, and easy to modify. It has some nice features which allow you to produce pretty pictures, but there are countless extensions, modifications, and improvements which could be made. There are many routines which may be optimized and many features which could be added. You are strongly encouraged to modify the source code left and right.

    The first version of rayshade was written by Craig Kolb, David P. Dobkin, and David C. Hoffman during 1987-1988, and was heavily based on an "introductory" public domain ray tracer written by Roman Kuchkuda. Rayshade v3.0 was written by Craig Kolb and released in the Fall of 1989. Rayshade v4.0 was written by Craig Kolb and Rod Bogart during 1990-1991.

    Rayshade development is "in haitus," quite probably for good.


    Craig Kolb cek@graphics.stanford.edu