home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
graphics
/
rshade30
/
doc
/
readme
< prev
next >
Wrap
Text File
|
1992-02-19
|
6KB
|
116 lines
This is version 3.0 of rayshade, a ray tracing program. Rayshade reads
a multi-line ASCII file describing a scene to be rendered and produces
a Utah Raster RLE format file of the ray-traced image.
Rayshade features:
Nine types of primitives (box, cone, cylinder, height field,
plane, polygon, sphere, superquadric, flat- and Phong-shaded triangle)
Composite objects
Point, directional, and extended (area) light sources
Solid procedural texturing and bump mapping of primitives, objects,
and individual instances of objects
Antialiasing through adaptive supersampling or "jittered" sampling
Arbitrary linear transformations on primitives,
instances of objects, and texture/bump maps
Use of uniform spatial subdivision or hierarchy of bounding
volumes to speed rendering
Options to facilitate rendering of stereo pairs
Support for the C-Linda parallel programming language
This version supersedes all previous versions, and it is to this release
that subsequent patches should be applied.
Rayshade has been tested on many different UNIX-based computers. If your
machine has a C compiler and enough memory (at least 2Mb), rayshade should
be fairly easy to port. Be warned that 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 prep.ai.mit.edu).
Normally, rayshade makes use of the Utah Raster toolkit. I strongly
suggest you get a copy of the toolkit, as it provides a host of useful tools
for image manipulation and a library for reading/reading the toolkit's
"RLE" format image files. UTAH.BLURB is the "blurb" file from the latest
distribution of the toolkit, which can be obtained via anonymous ftp from
cs.utah.edu (128.110.4.21), weedeater.math.yale.edu (130.132.23.17),
nl.cs.cmu.edu (128.22.222.56), and uunet.uu.net. Also of interest is the
"fbm" library, available from nl.cs.cmu.edu:/usr/mlm/ftp/fbm.tar.Z, which
provides tools for converting Utah Raster RLE format images to/from other
formats.
If you do not want to or cannot use the Utah Raster toolkit, compile-time
switches are provided to create image files using a generic format
identical to that used by Mark VandeWettering's "mtv" ray tracer. See the
Makefile and src/outputp.c for details.
The directory "src" contains the source to rayshade. To compile, edit the
Makefile in that directory and change include file and library paths and set
CFLAGS and LIBS to whatever is appropriate for your particular hardware/
software configuration.
The file doc/rayshade.1 contains a brief manual page which covers most things
a casual user will need to know in order to produce ray-traced images.
A tutorial on adding new textures on rayshade is included in doc/texture.ms.
A similar document on adding new primitives to rayshade is in
doc/primitive.ms. Unfortunately, there is as yet no technical documentation.
Once you've compiled rayshade, you can test it using the example input
files in the Examples directory. You can also run the output of
Eric Haines' Standard Procedural Database through awk using the
"nff2shade.awk" script, and feed the results to rayshade. Note that for
several of the databases, you will need to tweak the data a bit to achieve
optimal runtimes. See nff2shade.awk for details.
As of patch #2, rayshade no longer processes #include directives in the
input file. Instead, you are encouraged to make use of cpp in the
design of your input files. Rayshade will use cpp-generated lines
of the form '#n "filename"' to perform meaningful error reporting.
See Examples/planet.ray for more details.
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. For a list of suggested
improvements and projects see "TODO". You are encouraged to modify the
source code left and right.
Rayshade had its start as an "introductory" public domain ray tracer written
by Roman Kuchkuda. During 1987-88 the first version of rayshade was written
by Craig Kolb, David P. Dobkin (the original cylinder, cone and extinct torus-
tracing code), and David C. Hoffman (the original octree code). Craig Kolb
wrote the current version of rayshade during the fall of 1988 and has made a
large number of changes since then.
The current version of rayshade owes much to a number of people who have
made suggestions, fixed bugs, and who have been all-around good sports about
the whole thing. Thanks to David Dobkin, Eric Haines, Lefteris Koutsofios,
Ken Musgrave, Przemek Prusinkiewicz, and Allan Snider for their encouragement,
comments, and willingness to be on the Front Lines. Thanks also to Roman
Kuchkuda for providing a base upon which to build. Special thanks to Robert
Skinner for providing the Noise(), DNoise(), and other texturing functions
and allowing them to be redistributed. Thanks also to Rodney G. Bogart for
providing the depth of field code.
If you find any bugs, make any useful extensions, have a nice input
file, port rayshade to a new environment, or need assistance understanding a
particularly braindamaged section of code, please let me know. I can be most
easily reached by email.
Craig Kolb 7 Dec 89
kolb@yale.edu
Yale University Dept. of Mathematics
P.O. Box 2155 Yale Station
New Haven, CT 06520-2155