home *** CD-ROM | disk | FTP | other *** search
- 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 ).
-
-
-