home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dream 41
/
Amiga_Dream_41.iso
/
Amiga
/
Pro
/
3d
/
DKBTrace.lha
/
DKBTrace
/
dkbutdoc.lzh
/
utils.doc
< prev
Wrap
Text File
|
1991-06-08
|
14KB
|
317 lines
The DKBTrace Utilities
----------------------
In many cases, creating data files for DKBTrace is difficult and tedious. To
help remedy this problem, We and various other people have developed some
utilities to create data files. These utilities are described below.
As well, there are some utilities that perform operations on the image files
created by DKBTrace. These utilities convert between various formats and
allow you to modify or merge output files together. All in all there are
three major types of DKB utilities, I. Data File Creation, II. Output File
Manipulation, and III. Animation Utilities.
We'd like to thank all the people who wrote these utilities and sent them to
us. If anybody else comes up with other utilities, please let us know and
we'll cheerfully include them in future distributions.
Some of these utilities are written in BASIC for IBM PC systems (Arrrggh! :-P).
As such,they are not easily portable from system to system. We really wanted
to convert them all to C, but found that time was prohibitive. If anyone wants
to try their hand at converting them to C, let us know and we'll post the C
versions. They are all in Microsoft structured BASIC, which really isn't all
that far away from real C, anyway.
< I. > Data File Creation Utilities
-------------------------------------------------------------------------------
The data creation utilities fall into two categories: Those that convert from
some other format into DKB format, and those that generate DKB files using
algorithmic techniques. These utilities are described below.
-------------------------------------------------------------------------------
1.) SA2DKB
This program converts Sculpt-Animate 3D & 4D data files into DKB format. It
currently only supports the basic triangles and textures. It doesn't support
smooth triangles (it treats them like normal triangles), light sources,
cameras, or floors.
(This utility was formerly called "Sculpt2DKB" but the IBM systems out there
kept calling it "SCULPT2D", then couldn't figure out what a 2D program had to
do with raytracing or what the nonexistent Amiga program called "Sculpt-2D"
was :-)
2) DXF2DKB
This utility converts AutoCAD DXF (Drawing eXchange Format) files into
DKBTrace format scene description files. It was written by Aaron Collins. It
does not support all of the DXF primitives, but will suffice for simple
objects and scenes after EXPLODE'ing and DXFOUT'ing then in AutoCAD.
3) ShellGen
ShellGen is a BASIC program written by Dan Farmer. It's based on a short code
fragment from Clifford Pickover's book "Computers, Pattern, Chaos, and Beauty"
(St. Martin's Press). This code fragment was reprinted in Ray Tracing News
Issue 3.3.
As far as I know, the BASIC program only works on IBM's. It does, however,
allow you to change the parameters and see a quick outline of what the result
will look like.
For those people without IBM's, I've changed the original code fragment to at
least output a DKB-format file. No user interface has been provided, however.
The file is called PICKSHELL.C and is included in this archive.
The file DKBSHELL.INC is included by the program at the top of each data file
it generates. If you feel the VIEW_POINT or LIGHT_SOURCE definitions need
changing, go ahead.
4) Twister
Twister is a C program written by Drew Wells (CIS 73767,1244). It creates
data files for twisted shapes. The program uses a text interface and prompts
the user with a question/answer format.
5) Chem2DKB
Chem2DKB is an IBM BASIC program written by Dan Farmer. It takes models
generated by the CHEM.EXE V.2.00 program written by Larry Puhl.
6) Lissajou
This is an IBM BASIC program written by Dan Farmer. It creates data files for
lissajous figures. The basic algorithms were from Clifford Pickover. See
Scientific American Jan. '91 and Omni Feb '90 for examples.
7) 3D2-DKB
This is a C program written by Steve Anger. It takes a CAD-3D (Macintosh?)
.3D2 scene description data file and converts it to DKB format. There was
an earlier program called 3D22DXF.BAS which performed nearly the same function,
but output Auto-CAD DXF files instead of DKB data files directly. Light source
locations, ambient light levels and object color information are all converted.
8) SplitDKB
This is a program for IBM PC's running DOS. It works by generating a bunch of
batch files meant for breaking up a long-running data file to trace in several
parts for multiple machine execution. It also generates a batch file that will
glue the partial output files together in the correct order when all are done.
It is written in IBM BASIC by Dan Farmer, based on an idea by Randy Antler.
9) Diamond
This is an IBM BASIC program written by Ken Koehler. It generates a DKB data
file that describes the 3-D geometry of a faceted-cut gem stone (i.e. diamond).
It will generate an entire runnable DKB data file including light sources and
view points. It quickly displays an outline of the diamond shape it is about
to create in graphics mode. Many parameters are user-definable, such as the
height, width, number of sides, etc.
10) Gear
This is an IBM BASIC program written by Ken Koehler. It generates a DKB data
file that describes the 3-D geometry of a toothed gear. The gear may be solid-
centered with holes drilled in it, or spoked. The teeth may be pointed or flat
(the "flat" options were commented out originally, so they may not work right).
It will generate a DKB data file with the gear shape DECLARE'd. It quickly
displays an outline of the gear shape it is about to create in graphics mode.
11) TCE (The Color Editor)
This is an IBM BASIC program written by Dan Farmer. This is an interesting
color preview/mixing program. It will as for the name of a color definition
file (which we all now know is called "colors.dat", right?!?!?) and allow you
to browse through the file and display the colors therein, preview how they
will look (approximately) when projected onto a shaded sphere, and allow you
to change the R-G-B levels and create new colors for the file. Very nice
bolt-down menus.
12) Font2Dat
This is an IBM BASIC program written by Ken Koehler. It will take an IBM
screen font file (type .FNT or .SET) and convert them to DKB 3-D data files
using spheres, boxes, squares, or dots to represent each pixel in each source
character. It generates either a large data file containing all the chars or
individual data files, one file per char, at the user's request. The file
ROMAN.FNT is an example font file you can use to try it.
13) Star
This is an IBM BASIC program written by Ken Koehler. It draws an n-pointed
3-dimensional star figure, and gives a quick preview of what it looks like
on the screen in graphics mode. It outputs a COMPOSITE object in a DKB
data file that needs to have a view point and light sources added, and the
star's color and texture need to be declared.
< II. > Output File Manipulation Utilities
-------------------------------------------------------------------------------
These utilities perform some useful manipulations on the dump format and Targa
format output files from DKBTrace. I'd like to thank the people who wrote
these utilities and provided them for general distribution.
-------------------------------------------------------------------------------
1) dump2i24 (DumpToIFF24)
This program was written by Helge E. Rasmussen (her@compel.dk). It converts
the dump format files produced by DKBTrace into 24-bit IFF format files.
These files can then be read by a variety of programs including "The Art
Department" by ASDG.
2) catdump
This utility was written by Ville Saari vsaari@niksula.hut.fi (and copyright
by the Ferry Island Pixelboys.) It takes two or more partially rendered files
in DKBTrace's dump format and merges them into one file. This is useful for
all sorts of things like rendering different parts on different computers and
combining the results.
NOTE: Be careful if you combine pictures produced on different systems. If
the random number generator works differently between the two systems, the
textures may look completely different from one another. So long as you
use the same executable, you should be fine.
3) combdump (combine dump)
This utility was also written by Ville Saari. It takes two images generated
with DKBTrace with slightly different viewpoints, and creates one dump-format
image file to be viewed with RED-BLUE or RED-GREEN 3D glasses. The program
allows you to compensate for the exact filtering characteristics of your
glasses to get the best possible result.
4) dump2mtv
This is yet another utility written by Ville Saari. This one converts
DKBTrace dump format files onto MTV format used by the MTV and RayShade
raytracers.
5) dump2raw
The dump2raw utility was written by Aaron Collins to convert the dump format
output of DKBTrace into three separate files for red, green, and blue. On the
IBM, the extensions for these files are "r8", "g8", and "b8". On the other
systems, they are "red", "grn" and "blu".
DKB Version 2.10 and later allows you to use the +fr option to output "raw"
format files directly without the need for a conversion program like this.
6) halftga
The halftga utility (written by Aaron Collins) shrinks a Targa-format file to
exactly half its original size. This file can then be converted into a GIF
image and used in an IMAGE_MAP statement. For systems with little memory
available for imagemaps, this command can be a life-saver.
7) gluetga
This utility (by Aaron Collins) is similar to catdump but works for Targa
format files. It takes several partially-rendered Targa files and glues them
together into one image.
8) tga2dump
This utility was written by Aaron Collins. It converts Targa format 16, 24,
and 32 bit images into DKB's dump format for use in importing Targa files for
image-mapping textures in "true color" (24-bit).
9) ip2dkb
This utility was written by Frank P. Weed II. It converts Amiga Digiview IP
format output files to DKB's dump format for use in importing IP files for
image-mapping. Digiview IP uses a 2-million color range, which is converted
to the more common 16-million color (24-bit) range.
< III. > Animation Utilities
-------------------------------------------------------------------------------
One of the most frequent questions I'm asked is whether or not DKBTrace
supports animation. The answer is no, not directly. However, I have made
some changes to the program to provide frame-to-frame consistency so you can
use it for animation if you want to. The problem, then, is creating the data
files for each individual frame. That's what this section is all about.
-------------------------------------------------------------------------------
1) Anima
This is an IBM BASIC program written by Dan Farmer. It will take a "skeleton"
data file with syntactic variables used (like %0, %1, etc.) and use "rules"
which dictate how the variables change over each frame. The program will
stamp out a given number of DKB data files with the variables substituted for
the actual desired values, stepped in each data file according to the "rules".
The files ANIM1.DAT and ANIM2.DAT are a couple of example "skeleton" data files
you can use to try it.
2) RayScene
Although RayScene is not being distributed with this raytracer, we thought we'd
at least mention it and tell you where you can get it. RayScene is a program
that creates data files for DKBTrace based on a high-level (higher-level?)
description of the motion of the camera and the objects. It was written by
Jari K{hk|nen (hole@tolsun.oulu.fi) and Panu Hassi (oldfox@tolsun.oulu.fi) and
is available by anonymous FTP from tolsun.oulu.fi (128.214.5.6) in the
directory /pub/rayscene or from iear.arts.rpi.edu in the directory
/pub/graphics/ray/rayscene. Of course, it's also on the "You Can Call Me RAY"
BBS in the Chicago Area, (708) 358-5611.
This explanation of RayScene was sent to me by Panu Hassi;
"I've tried animation with DBW before DKBTrace2.0 was released.
The procedure was this: First I wrote the first scene file, copied it
for NUMBER_OF_FRAMES times and then edited some parts of those files
to create movement etc. If something went wrong (I accidentally edited
wrong value etc), I had to edit all those scene files again to make the
changes. Not so nice if there are 100 files to edit...
So a friend of mine, Jari K{hk|nen, and I decided to write RayScene to
make that process even a little easier. With RayScene the process
goes like this: you create a scene file and mark the places that
should be changed with a variable, like:
BOUNDED_BY
SPHERE <0.0 0.0 0.0> #sphere_size# END_SPHERE
END_BOUND
Then you create another file where the values for these variables are
listed. Rayscene simply creates N scene files inserting current value of
each variable to proper place. That's all :D
We have included couple of simple utilities that help with creating
those variable values, but the original scene files are still created
'manually'. Still, the results have been really nice. There are
several animations for Amiga and PC in tolsun.oulu.fi."
< IV. > Concluding Remarks
------------------------------------------------------------------------------
The IBM executable versions of the utilities are compiled with 8088/no 8087
flags given to the compiler for maximum portability. If you REALLY must have
them operate a LITTLE quicker, you can change the IBM*.MAK files to use a
coprocessor and/or 286 opcodes, and then re-compile all of the "C" utilities.
For the most part the utilities are simple and small enough that they perform
adequately without really needing these optimizations.
Four semi-extraneous files are included:
1) Dump2RGB.C is older version of Dump2RAW.C that uses more memory & less
disk activity.
2) CHEMCONV.C is a different (C instead of BASIC) IBM P.C. Chem V.2.00
molecular modeler Data file generator (renamed from CHEM2DKB.C).
3) PICKSHEL.C is the original C program that SHELLGEN.BAS is derived from,
Clifford Pickover's seashell program (renamed from SHELLGEN.C).
4) 3D22DXF.BAS is an older BASIC program that wrote DXF files. 3d2-dkb.c
is by a different author, and converts 3d2 files to DKB files directly.