home *** CD-ROM | disk | FTP | other *** search
/ Dream 41 / Amiga_Dream_41.iso / Amiga / Pro / 3d / DKBTrace.lha / DKBTrace / dkbutdoc.lzh / utils.doc < prev   
Text File  |  1991-06-08  |  14KB  |  317 lines

  1. The DKBTrace Utilities
  2. ----------------------
  3.  
  4. In many cases, creating data files for DKBTrace is difficult and tedious.  To
  5. help remedy this problem, We and various other people have developed some
  6. utilities to create data files.  These utilities are described below.
  7.  
  8. As well, there are some utilities that perform operations on the image files
  9. created by DKBTrace.  These utilities convert between various formats and
  10. allow you to modify or merge output files together.  All in all there are
  11. three major types of DKB utilities, I. Data File Creation, II. Output File
  12. Manipulation, and III. Animation Utilities.
  13.  
  14. We'd like to thank all the people who wrote these utilities and sent them to
  15. us.  If anybody else comes up with other utilities, please let us know and
  16. we'll cheerfully include them in future distributions.
  17.  
  18. Some of these utilities are written in BASIC for IBM PC systems (Arrrggh! :-P).
  19. As such,they are not easily portable from system to system.  We really wanted
  20. to convert them all to C, but found that time was prohibitive.  If anyone wants
  21. to try their hand at converting them to C, let us know and we'll post the C
  22. versions.  They are all in Microsoft structured BASIC, which really isn't all
  23. that far away from real C, anyway.
  24.  
  25.  
  26. < I. >  Data File Creation Utilities
  27.  
  28. -------------------------------------------------------------------------------
  29.  
  30. The data creation utilities fall into two categories:  Those that convert from
  31. some other format into DKB format, and those that generate DKB files using
  32. algorithmic techniques.  These utilities are described below.
  33.  
  34. -------------------------------------------------------------------------------
  35.  
  36. 1.)  SA2DKB
  37.  
  38. This program converts Sculpt-Animate 3D & 4D data files into DKB format.  It
  39. currently only supports the basic triangles and textures. It doesn't support
  40. smooth triangles (it treats them like normal triangles), light sources,
  41. cameras, or floors. 
  42.  
  43. (This utility was formerly called "Sculpt2DKB" but the IBM systems out there
  44. kept calling it "SCULPT2D", then couldn't figure out what a 2D program had to
  45. do with raytracing or what the nonexistent Amiga program called "Sculpt-2D"
  46. was :-)
  47.  
  48. 2)  DXF2DKB
  49.  
  50. This utility converts AutoCAD DXF (Drawing eXchange Format) files into
  51. DKBTrace format scene description files.  It was written by Aaron Collins.  It
  52. does not support all of the DXF primitives, but will suffice for simple
  53. objects and scenes after EXPLODE'ing and DXFOUT'ing then in AutoCAD.
  54.  
  55. 3)  ShellGen
  56.  
  57. ShellGen is a BASIC program written by Dan Farmer.  It's based on a short code
  58. fragment from Clifford Pickover's book "Computers, Pattern, Chaos, and Beauty"
  59. (St. Martin's Press).  This code fragment was reprinted in Ray Tracing News
  60. Issue 3.3.
  61.  
  62. As far as I know, the BASIC program only works on IBM's.  It does, however,
  63. allow you to change the parameters and see a quick outline of what the result
  64. will look like.
  65.  
  66. For those people without IBM's, I've changed the original code fragment to at
  67. least output a DKB-format file.  No user interface has been provided, however.
  68. The file is called PICKSHELL.C and is included in this archive.
  69.  
  70. The file DKBSHELL.INC is included by the program at the top of each data file
  71. it generates.  If you feel the VIEW_POINT or LIGHT_SOURCE definitions need
  72. changing, go ahead.
  73.  
  74. 4)  Twister
  75.  
  76. Twister is a C program written by Drew Wells (CIS 73767,1244).  It creates
  77. data files for twisted shapes.  The program uses a text interface and prompts
  78. the user with a question/answer format.
  79.  
  80. 5)  Chem2DKB
  81.  
  82. Chem2DKB is an IBM BASIC program written by Dan Farmer.  It takes models
  83. generated by the CHEM.EXE V.2.00 program written by Larry Puhl.
  84.  
  85. 6)  Lissajou
  86.  
  87. This is an IBM BASIC program written by Dan Farmer.  It creates data files for
  88. lissajous figures.  The basic algorithms were from Clifford Pickover.  See
  89. Scientific American Jan. '91 and Omni Feb '90 for examples.
  90.  
  91. 7)  3D2-DKB
  92.  
  93. This is a C program written by Steve Anger.  It takes a CAD-3D (Macintosh?)
  94. .3D2 scene description data file and converts it to DKB format.  There was
  95. an earlier program called 3D22DXF.BAS which performed nearly the same function,
  96. but output Auto-CAD DXF files instead of DKB data files directly.  Light source
  97. locations, ambient light levels and object color information are all converted.
  98.  
  99. 8)  SplitDKB
  100.  
  101. This is a program for IBM PC's running DOS.  It works by generating a bunch of
  102. batch files meant for breaking up a long-running data file to trace in several
  103. parts for multiple machine execution.  It also generates a batch file that will
  104. glue the partial output files together in the correct order when all are done.
  105. It is written in IBM BASIC by Dan Farmer, based on an idea by Randy Antler.
  106.  
  107. 9)  Diamond
  108.  
  109. This is an IBM BASIC program written by Ken Koehler.  It generates a DKB data
  110. file that describes the 3-D geometry of a faceted-cut gem stone (i.e. diamond).
  111. It will generate an entire runnable DKB data file including light sources and
  112. view points.  It quickly displays an outline of the diamond shape it is about
  113. to create in graphics mode.  Many parameters are user-definable, such as the
  114. height, width, number of sides, etc.
  115.  
  116. 10) Gear
  117.  
  118. This is an IBM BASIC program written by Ken Koehler.  It generates a DKB data
  119. file that describes the 3-D geometry of a toothed gear.  The gear may be solid-
  120. centered with holes drilled in it, or spoked.  The teeth may be pointed or flat
  121. (the "flat" options were commented out originally, so they may not work right).
  122. It will generate a DKB data file with the gear shape DECLARE'd.  It quickly
  123. displays an outline of the gear shape it is about to create in graphics mode.
  124.  
  125. 11)  TCE  (The Color Editor)
  126.  
  127. This is an IBM BASIC program written by Dan Farmer.  This is an interesting
  128. color preview/mixing program.  It will as for the name of a color definition
  129. file (which we all now know is called "colors.dat", right?!?!?)  and allow you
  130. to browse through the file and display the colors therein, preview how they
  131. will look (approximately) when projected onto a shaded sphere, and allow you
  132. to change the R-G-B levels and create new colors for the file.  Very nice
  133. bolt-down menus.
  134.  
  135. 12)  Font2Dat
  136.  
  137. This is an IBM BASIC program written by Ken Koehler.  It will take an IBM
  138. screen font file (type .FNT or .SET) and convert them to DKB 3-D data files
  139. using spheres, boxes, squares, or dots to represent each pixel in each source
  140. character.  It generates either a large data file containing all the chars or
  141. individual data files, one file per char, at the user's request.  The file
  142. ROMAN.FNT is an example font file you can use to try it.
  143.  
  144. 13)  Star
  145.  
  146. This is an IBM BASIC program written by Ken Koehler.  It draws an n-pointed
  147. 3-dimensional star figure, and gives a quick preview of what it looks like
  148. on the screen in graphics mode.  It outputs a COMPOSITE object in a DKB
  149. data file that needs to have a view point and light sources added, and the
  150. star's color and texture need to be declared.
  151.  
  152.  
  153. < II. >  Output File Manipulation Utilities
  154.  
  155. -------------------------------------------------------------------------------
  156.  
  157. These utilities perform some useful manipulations on the dump format and Targa
  158. format output files from DKBTrace.  I'd like to thank the people who wrote
  159. these utilities and provided them for general distribution.
  160.  
  161. -------------------------------------------------------------------------------
  162.  
  163. 1)  dump2i24   (DumpToIFF24)
  164.  
  165. This program was written by Helge E. Rasmussen (her@compel.dk).  It converts
  166. the dump format files produced by DKBTrace into 24-bit IFF format files.
  167. These files can then be read by a variety of programs including "The Art
  168. Department" by ASDG.
  169.  
  170. 2)  catdump
  171.  
  172. This utility was written by Ville Saari vsaari@niksula.hut.fi (and copyright
  173. by the Ferry Island Pixelboys.)  It takes two or more partially rendered files
  174. in DKBTrace's dump format and merges them into one file.  This is useful for
  175. all sorts of things like rendering different parts on different computers and
  176. combining the results. 
  177.  
  178. NOTE:  Be careful if you combine pictures produced on different systems.  If
  179. the random number generator works differently between the two systems, the
  180. textures may look completely different from one another.  So long as you
  181. use the same executable, you should be fine.
  182.  
  183. 3)  combdump  (combine dump)
  184.  
  185. This utility was also written by Ville Saari.  It takes two images generated
  186. with DKBTrace with slightly different viewpoints, and creates one dump-format
  187. image file to be viewed with RED-BLUE or RED-GREEN 3D glasses.  The program
  188. allows you to compensate for the exact filtering characteristics of your
  189. glasses to get the best possible result.
  190.  
  191. 4)  dump2mtv
  192.  
  193. This is yet another utility written by Ville Saari.  This one converts
  194. DKBTrace dump format files onto MTV format used by the MTV and RayShade
  195. raytracers.
  196.  
  197. 5)  dump2raw
  198.  
  199. The dump2raw utility was written by Aaron Collins to convert the dump format
  200. output of DKBTrace into three separate files for red, green, and blue.  On the
  201. IBM, the extensions for these files are "r8", "g8", and "b8".  On the other
  202. systems, they are "red", "grn" and "blu".
  203.  
  204. DKB Version 2.10 and later allows you to use the +fr option to output "raw"
  205. format files directly without the need for a conversion program like this.
  206.  
  207. 6)  halftga
  208.  
  209. The halftga utility (written by Aaron Collins) shrinks a Targa-format file to
  210. exactly half its original size.  This file can then be converted into a GIF
  211. image and used in an IMAGE_MAP statement.  For systems with little memory
  212. available for imagemaps, this command can be a life-saver. 
  213.  
  214. 7)  gluetga
  215.  
  216. This utility (by Aaron Collins) is similar to catdump but works for Targa
  217. format files.  It takes several partially-rendered Targa files and glues them
  218. together into one image. 
  219.  
  220. 8)  tga2dump
  221.  
  222. This utility was written by Aaron Collins.  It converts Targa format 16, 24,
  223. and 32 bit images into DKB's dump format for use in importing Targa files for
  224. image-mapping textures in "true color" (24-bit).
  225.  
  226. 9) ip2dkb
  227.  
  228. This utility was written by Frank P. Weed II.  It converts Amiga Digiview IP
  229. format output files to DKB's dump format for use in importing IP files for
  230. image-mapping.  Digiview IP uses a 2-million color range, which is converted
  231. to the more common 16-million color (24-bit) range.
  232.  
  233.  
  234. < III. >  Animation Utilities
  235.  
  236. -------------------------------------------------------------------------------
  237.  
  238. One of the most frequent questions I'm asked is whether or not DKBTrace
  239. supports animation.  The answer is no, not directly.  However, I have made
  240. some changes to the program to provide frame-to-frame consistency so you can
  241. use it for animation if you want to.  The problem, then, is creating the data
  242. files for each individual frame.  That's what this section is all about.
  243.  
  244. -------------------------------------------------------------------------------
  245.  
  246. 1)  Anima
  247.  
  248. This is an IBM BASIC program written by Dan Farmer.  It will take a "skeleton"
  249. data file with syntactic variables used (like %0, %1, etc.) and use "rules"
  250. which dictate how the variables change over each frame.  The program will
  251. stamp out a given number of DKB data files with the variables substituted for
  252. the actual desired values, stepped in each data file according to the "rules".
  253. The files ANIM1.DAT and ANIM2.DAT are a couple of example "skeleton" data files
  254. you can use to try it.
  255.  
  256. 2)  RayScene
  257.  
  258. Although RayScene is not being distributed with this raytracer, we thought we'd
  259. at least mention it and tell you where you can get it.  RayScene is a program
  260. that creates data files for DKBTrace based on a high-level (higher-level?)
  261. description of the motion of the camera and the objects.  It was written by
  262. Jari K{hk|nen (hole@tolsun.oulu.fi) and Panu Hassi (oldfox@tolsun.oulu.fi) and
  263. is available by anonymous FTP from tolsun.oulu.fi (128.214.5.6) in the
  264. directory /pub/rayscene or from iear.arts.rpi.edu in the directory
  265. /pub/graphics/ray/rayscene.  Of course, it's also on the "You Can Call Me RAY"
  266. BBS in the Chicago Area, (708) 358-5611.
  267.  
  268. This explanation of RayScene was sent to me by Panu Hassi;
  269.  
  270.    "I've tried animation with DBW before DKBTrace2.0 was released.  
  271.     The procedure was this: First I wrote the first scene file, copied it 
  272.     for NUMBER_OF_FRAMES times and then edited some parts of those files 
  273.     to create movement etc.  If something went wrong (I accidentally edited 
  274.     wrong value etc), I had to edit all those scene files again to make the
  275.     changes.  Not so nice if there are 100 files to edit...
  276.     
  277.     So a friend of mine, Jari K{hk|nen, and I decided to write RayScene to
  278.     make that process even a little easier.  With RayScene the process
  279.     goes like this:  you create a scene file and mark the places that 
  280.     should be changed with a variable, like:
  281.  
  282.     BOUNDED_BY                              
  283.          SPHERE <0.0 0.0 0.0> #sphere_size# END_SPHERE
  284.     END_BOUND
  285.     
  286.     Then you create another file where the values for these variables are
  287.     listed.  Rayscene simply creates N scene files inserting current value of
  288.     each variable to proper place.  That's all :D
  289.     
  290.     We have included couple of simple utilities that help with creating
  291.     those variable values, but the original scene files are still created
  292.     'manually'.  Still, the results have been really nice.  There are 
  293.     several animations for Amiga and PC in tolsun.oulu.fi."
  294.  
  295.  
  296. < IV. >  Concluding Remarks
  297.  
  298. ------------------------------------------------------------------------------
  299.  
  300. The IBM executable versions of the utilities are compiled with 8088/no 8087
  301. flags given to the compiler for maximum portability.  If you REALLY must have
  302. them operate a LITTLE quicker, you can change the IBM*.MAK files to use a
  303. coprocessor and/or 286 opcodes, and then re-compile all of the "C" utilities.
  304. For the most part the utilities are simple and small enough that they perform
  305. adequately without really needing these optimizations.
  306.  
  307. Four semi-extraneous files are included:
  308.  
  309.     1) Dump2RGB.C is older version of Dump2RAW.C that uses more memory & less
  310.        disk activity.
  311.     2) CHEMCONV.C is a different (C instead of BASIC) IBM P.C. Chem V.2.00
  312.        molecular modeler Data file generator (renamed from CHEM2DKB.C).
  313.     3) PICKSHEL.C is the original C program that SHELLGEN.BAS is derived from,
  314.        Clifford Pickover's seashell program (renamed from SHELLGEN.C).
  315.     4) 3D22DXF.BAS is an older BASIC program that wrote DXF files.  3d2-dkb.c
  316.        is by a different author, and converts 3d2 files to DKB files directly.
  317.