home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_disks
/
001-099
/
ff066.lzh
/
RayTracer
/
tracer.man
< prev
next >
Wrap
Text File
|
1987-04-12
|
5KB
|
109 lines
TRACER(69) FRITZZ GRAPHICS TRACER(69)
NAME
tracer- run a simple ray tracing procedure
SYNOPSIS
tracer -r -o [file] -i [file] -p [file] -s <file> -a<number> -S<number>
DESCRIPTION
Tracer is a program developed originally to study how
ray tracing works, and was later modified to the present state
to make it more compatible for animated film production.
It is capable of depicting a number of balls (up to 150)
and a plane that is covered with a tiling of any bitmapped picture.
OPTIONS
-r If used, causes the output to be computed and output rotated 90
degrees counterclockwise. Good for printing wide images.
-o Chooses the output picture file. If the option is not used, the
default is tracer.pic.
-i Chooses the input (ball) data file. If no argument is given, stdin
is used. If the option is not used the default is tracer.ball.
-p Chooses the parameters data file. If no argument is given, stdin
is used. If the option is not used, the default is tracer.param.
-s Chooses the file containing the tiling bitmap. It requires an
an argument. If the option is not used the default is tracer.pat.
-a Chooses level of antialiasing. Value must be an integer from 1 to
9. Determines number of subcells computed per pixel. Default is 1.
-S Chooses contrast of the pattern. 0.0 is no contrast, 1.0 is maximum
contrast. 1.0 is the default. (useful for fading during animation)
PROGRAM NOTES
This program generates an IFF file in 640 x 400, 16 color mode, use any
of the standard IFF viewers to examine the results.
There are three necessary input files: ball data, the parameters file,
and a pattern bitmap. The tiling bitmap can be digitized data, it must
be in the form of scan lines no longer than 512 bytes followed by newlines.
The ball data is of the following form:
x y z rad ior refract reflect diffuse ambient
on each line where x y & z are the coordinates of the center of
the ball, rad is the radius of the ball, ior is the index of refraction
for translucent materials (index of refraction for glass is about 1.5)
the last four numbers determine how much of each atrribute is used.
Thus a pure silver ball would have 0.0 1.0 0.0 0.0 as the last numbers,
and a pure glass ball would have 1.0 0.0 0.0 0.0 .
The parameters file is of the following form:
xmin xmax ymin ymax xpix ypix ar vpx vpy vpz lsx lsy lsz lsrad
Here xmin, xmax, ymin, and ymax define the view port through which the
scene is computed. The number of computed pixels in each axis are
determined by xpix and ypix. The aspect ratio (ar), if positive, applies
to the final image. If negative, it applies to each pixel. In either
case, the viewport is adjusted to fit entirely in the final image. If
the aspect ratio is zero, the given viewport is divided into xpix*ypix
pixels and computed without further ado. The location of the viewing
point is given by vpx, vpy, and vpz. The light source position and
radius are in lsx, lsy, lsz, and lsrad.
The antialiasing scheme merely breaks each pixel down into a square array
of subcells, computes the intensity of each, and uses the average of
their values as the value for the entire pixel. For instance, an input
of "-a5" uses a 5 x 5 array of subcells. This results in a remarkable
reduction of aliasing, at the expense of (in this case) 25 times longer
run time. ( warning: use only if you have alot of time on your hands )
FILES
tracer.pic default output file
tracer.ball default ball data
tracer.param default parms file
tracer.pat default floor pattern
AUTHORS
friedrich knauss - original author
Steve Williams & Jim Horn - added anti-aliasing and parameter files
Mark C Reichert - added fast amiga math and IFF auto-save
BUGS
As with any good software, the complexity of this program hides
all bugs.
There is sometimes a bug which causes a divide by zero fault. This
occurs rarely due to some "bad" ball specifications. If you can find
the source of this, please try to find some way to let me ( mcr ) know
where the fault lies.
Also, if you want to be able to do a ctrl-C to stop this program at
any point, you should run it directly for a cli, not from a shell
because most shells are not capable of passing on the break to their
subprocesses ( unless Matt Dillon has fixed that by the time you
are reading this ).