home *** CD-ROM | disk | FTP | other *** search
/ Current Shareware 1994 January / SHAR194.ISO / graphuti / 3dspov18.zip / 3DS2POV.DOC next >
Text File  |  1993-10-05  |  13KB  |  310 lines

  1. 3DS2POV Version 1.8  Oct/93
  2. Copyright (c) 1993 by Steve Anger and Jeff Bowermaster
  3.  
  4. This program reads a 3D Studio .3DS file and writes a POV-Ray, Vivid or
  5. Polyray raytracer scene file. Cameras, lights, spotlights, and mesh objects
  6. are all converted. Basic material properties such as colour, reflection,
  7. and transparency are converted however image maps and bump maps must be
  8. converted manually.
  9.  
  10. POV-Ray users! Since POV-Ray 2.0 has now been released to the public the
  11. default output format has been changed to POV-Ray 2.0. If you're still
  12. using POV-Ray 1.0 you can still generate 1.0 compatible files by using
  13. the -op1 switch.
  14.  
  15.  
  16. Hardware requirements:
  17.  
  18. The 3ds2pov.exe executable requires a minimum of a 386 or a 486 with a
  19. math co-processor. At least 2MB RAM is recommended. It's compatible with
  20. most 386 memory managers and DPMI servers.
  21.  
  22.  
  23. Syntax:  3ds2pov inputfile[.3ds] [outputfile] [options]
  24.  
  25. Options:
  26. -snnn        - Generates smooth triangles. The boundaries between triangles
  27.                are only smoothed if the angle between the triangles is less
  28.                that nnn degrees. -s0 will not smooth any triangles while
  29.                -s180 will smooth all triangles. Values from -s45 to -s90
  30.                usually work well. If unspecified smoothing defaults to -s70.
  31.  
  32. -l<filename> - Specifies an include file containing texture declarations for
  33.                common 3DS materials. Up to 10 libraries can be specified.
  34.  
  35. -a<filename> - Use animation information in specified .vue file.
  36.  
  37. -fnnn        - Generate frame nnn of animation (must be used with -a
  38.                parameter).
  39.  
  40. -x<object>   - Exclude this object from the conversion.
  41.  
  42. -b<object>   - Replace this object with a box during the conversion. If no
  43.                object is specified then all objects will be affected.
  44.  
  45. +i, -i       - Turn internal bounding on or off for POV-Ray. If not specified
  46.                internal bounding defaults to on for POV-Ray 1.0 and off for
  47.                POV-Ray 2.0.
  48.  
  49. +v, -v       - Turn verbose status messages on or off (off by default).
  50.  
  51. -op          - Output to POV-Ray 2.0 format (default)
  52. -op1         - Output to POV-Ray 1.0 format
  53. -ov          - Output to Vivid format
  54. -ol          - Output to poLyray format
  55. -or          - Output to Raw triangle format.
  56.  
  57. Note: When specifying object names on the command line, object names that
  58. contain spaces must be enclosed in double quotes. e.g. -x"BEACH BALL"
  59.  
  60.  
  61. Use:
  62.                3ds2pov robot -lrobotmtl.inc
  63.  
  64. assumes the input file is robot.3ds and outputs to robot.pov and
  65. robot.inc in the current directory. The file robot.pov will contain
  66. the camera, light sources, and list of materials used (basically everything
  67. you may want to edit) and robot.inc contains the triangle mesh data.
  68.  
  69. Predefined materials in robotmtl.inc.inc will be automatically used if the
  70. names  match (case is important), otherwise 3ds2pov will generate a material
  71. definition based on the information in the .3DS file. The files 3ds.inc and
  72. v3ds.vs are included as examples of how to setup material libraries for
  73. POV-Ray and Vivid.
  74.  
  75.  
  76. Materials Conversion:
  77.  
  78. The 3DS to raytracer material properties conversion is functional but far
  79. from perfect. Basic material properties such as object colour, reflection
  80. and transparency are automatically converted but image maps, bump maps, and
  81. reflection maps are ignored. In most cases the converted material should
  82. match the original reasonably well however it's not uncommon for some
  83. materials to come out completely wrong. Expect to have to do some manual
  84. tweaking.
  85.  
  86.  
  87. Smoothing:
  88.  
  89. 3ds2pov doesn't use 3D Studio's smoothing group information and instead
  90. does it's own smoothing. The amount of smoothing applied is controlled by
  91. the -s parameter and specifies the maximum angle that will be smoothed. The
  92. default of -s70 usually works for most scenes but you may find that some
  93. scenes require more or less smoothing. This parameter works just like the
  94. Auto Smooth option in 3DS.
  95.  
  96.  
  97. Animation:
  98.  
  99.   The animation information is exported from 3ds via a .vue file that can
  100. be created in the 3DS keyframer (Render/Setup/Make .VUE). By specifying the
  101. name of the .vue file and a frame number 3ds2pov will generate a scene file
  102. for that specific frame.
  103.  
  104.    e.g.    3ds2pov robot -arobot.vue -f5
  105.  
  106. The option -arobot.vue tells it to get the animation information from file
  107. robot.vue and option -f5 tells it to render frame #5. To generate a whole
  108. animation you can create a batch file that runs 3ds2pov and the raytracer
  109. for each frame in the animation. The program 3dsani is included to make the
  110. generation of this file a little easier.
  111.  
  112. Syntax:  3dsani inputfile [options]
  113.  
  114. Options:
  115. -a<filename> - Specifies the name of the  3ds animation (.vue) file.
  116.                If unspecified defaults to inputfile.vue.
  117.  
  118. -t<filename> - Specifies the name of the template (.tpl) file.
  119.                If unspecified defaults to inputfile.tpl.
  120.  
  121. -o<filename> - Specifies the name of the output (.bat) file.
  122.                If unspecified defaults to inputfile.bat.
  123.  
  124. -snnn        - Start animation at frame nnn. If unspecified the start frame
  125.                is taken from the .vue file.
  126.  
  127. -ennn        - End animation at frame nnn. If unspecified the end frame is
  128.                taken from the .vue file.
  129.  
  130. -pnnn        - Render every nnn'th frame. If unspecified defaults to 1.
  131.  
  132.  
  133. Example:
  134.              3dsani robot -tani1.tpl
  135.  
  136. generates a batch file named robot.bat that will execute 3ds2pov and povray
  137. once for each frame of the animation. The beginning and ending frame numbers
  138. are determined from the file robot.vue. The format of the batch file is
  139. determined from the template file ani1.tpl. Basically the template file is
  140. duplicated once for each frame but with all occurrences of the characters $
  141. and # replaced by the file name and frame number respectively. Several
  142. sample template files are included which can be tailored to your specific
  143. needs.
  144.  
  145.  
  146. Environment Variable:
  147.  
  148. If you find that you're often using the same command options over and over
  149. again you can set up your default command line options in the 3DS2POV
  150. environment variable. e.g. If you generally use Vivid as your renderer you
  151. may want to add the following line to your autoexec.bat:
  152.  
  153.                          set 3DS2POV=-ov
  154.  
  155. Commands specified in the environment variable will be overridden by those
  156. specified on the command line.
  157.  
  158.  
  159. Known Bugs/Problems:
  160.  
  161. Orthogonal/user viewports, and camera roll are not implemented.
  162.  
  163. Solid background colours work with POV-Ray and Polyray but not with Vivid.
  164.  
  165. Fog works with POV-Ray but not with Polyray or Vivid.
  166.  
  167. Gradient and image mapped backgrounds are not implemented.
  168.  
  169. The camera field-of-view conversion isn't perfect. The rendered FOV will be
  170. close to the original but it won't be exact.
  171.  
  172. If the 3DS file contains more than one camera it'll use the first one it
  173. comes across. All additional cameras will be commented out.
  174.  
  175. There is a known problem with the version of POV-Ray 1.0 that was shipped with
  176. the Image Lab book that prevents smooth triangles from rendering. If you have
  177. this version you can download the latest version from CompuServe or a local
  178. BBS (look for POVIBM.ZIP).
  179.  
  180. POV-Ray 1.0 doesn't handle refraction very well for triangle meshes. If you
  181. want realistic refraction in your image you should output to POV-Ray 2.0 with
  182. no bounding boxes (2.0 will bound the scene itself). Also only a single
  183. material should be used on each refracting object (don't apply materials
  184. to individual faces).
  185.  
  186.  
  187. Files included in archives:
  188.  
  189. 3DS2POV.EXE  - The converter.
  190. 3DSANI.EXE   - Animation generation utility.
  191. 3DS2POV.DOC  - This file!
  192.  
  193. SAMPLES.ZIP  - Sample files.
  194.   DIAM.3DS     - A sparkling diamond. Diamond data from Jeff B.
  195.   ROBOT.3DS    - A simple robot animation
  196.   ROBOT.VUE    - Exported animation information from ROBOT.3DS
  197.   POVDIAM.BAT  - Batch file to render DIAM.3DS with POV-Ray 2.0
  198.   VIVDIAM.BAT  -   "    "   "    "       "      "   Vivid
  199.   POVROBOT.BAT - Batch file to render ROBOT.3DS animation with POV-Ray
  200.   VIVROBOT.BAT -   "    "   "    "       "          "      "   Vivid
  201.   DIAMMTL.INC  - POV-Ray material definitions for DIAM.3DS
  202.   ROBOTMTL.INC -    "       "          "       "  ROBOT.3DS
  203.   DIAMMTL.VS   - Vivid material definitions for DIAM.3DS
  204.   ROBOTMTL.VS  -   "       "         "       "  ROBOT.3DS
  205.   ROBOTPOV.TPL - Template used to generate POVROBOT.BAT
  206.   ROBOTVIV.TPL -    "      "   "     "     VIVROBOT.BAT
  207.   ANI*.TPL     - Sample template files for POV-Ray and Vivid
  208.   3DS.INC      - A sample 3DS material library for use with POV-Ray
  209.   V3DS.VS      - "   "     "     "        "     "   "   "   Vivid
  210.  
  211. SOURCE.ZIP     - Source code for 3DS2POV.EXE and 3DSANI.EXE.
  212.  
  213.  
  214. Compiler:
  215.  
  216. The protected mode version of this program was compiled with DJGPP 1.10,
  217. DJ Delorie's DOS port of the GNU C/C++ compiler. Source code and executables
  218. for this compiler and the DOS extender can be obtained from the ftp site
  219. omnigate.clarkson.edu in directory ~ftp/pub/msdos/djgpp. DJGPP can also be
  220. found on CompuServe and many BBS systems.
  221.  
  222.  
  223. Future:
  224.  
  225. For a while I've been playing around with the idea of adding one or two
  226. radiosity packages to the list of supported renders but I don't know much
  227. about what radiosity packages are available. Anyone have a favorite
  228. radiosity program (preferably one that's freely available). Is radiosity
  229. rendering of multi-1000 triangle meshes practical on desktop computers?
  230.  
  231.  
  232. Revision History:
  233.  
  234. 10/05/93
  235. Ver. 1.8   Default output format is now POV-Ray 2.0 (if you're still using
  236.            POV-Ray 1.0 use the -op1 switch). Added automatic conversion of
  237.            basic material properties (colour, relfection, transparency).
  238.            Selected objects can be converted as boxes for testing. Default
  239.            smoothing changed from 60 degrees to 70 degrees. The executable
  240.            is now DPMI compliant and should work under OS/2 and Windows.
  241.  
  242. 05/07/93
  243. Ver. 1.7   Directly reads .3DS files instead of the slow/bulky .ASC files.
  244.            Added support for 3DS 2.01 .vue files and fixed some bugs with
  245.            the .vue file parsing. Added morphing. Added support for the
  246.            Polyray raytracer. Textures now move with animated objects.
  247.            Default switches can be set in the 3DS2POV environment variable.
  248.  
  249. 12/14/92
  250. Ver. 1.6   Animation support added. Added support for Vivid output.
  251.            Identifiers that begin with a digit are now prefixed with
  252.            the letter 'N' rather than an underscore (for compatibility
  253.            with Vivid). Fog works (I think).
  254.  
  255. 10/18/92
  256. Ver. 1.5b  Correctly handles spotlight hotspot parameter. Multiple texture
  257.            libraries can be specified. A bug that occasionally resulted in
  258.            a zero length include file fixed.
  259.  
  260. 08/06/92
  261. Ver. 1.5   Fixed bug with spotlight falloff parameter.
  262.  
  263. 07/27/92
  264. Ver. 1.4   Modified for POV-Ray 1.0 output format. Uses 1.0's new box
  265.            primitive for bounding. Bounding ellipsoids are no longer used.
  266.            Added support for spotlights.
  267.  
  268. 06/04/92
  269. Ver. 1.3   Modified the parser to handle 3D Studio 2.0 ascii dump files as
  270.            well as 1.0. Added limited support for automatic texture handling.
  271.  
  272. 05/03/92
  273. Ver. 1.2   Added the octree bounding code from txt2pov. The parser is now a
  274.            little more bullet proof and should be able to handle minor
  275.            changes in the format of the ascii dump file.
  276.  
  277. 11/08/91
  278. Ver. 1.1c  Fixed the bug I inadvertently added to the txt output in v1.1b. 
  279.            Added texture names to the txt output.  These are used by v1.3 of
  280.            txt2pov (formerly txt2dkb).  The 32 bit version no longer requires
  281.            removal of 386 memory managers. SA
  282.  
  283. 10/15/91
  284. Ver. 1.1b  Minor source code modifications to allow program to compile with
  285.            GNU C 32 bit compiler.  Note: The 32 bit version (3ds2dkbx.exe)
  286.            requires a 386 /w 387 or a 486 to run.  2M or more RAM is
  287.            recommended.  Any 386 memory managers (386^Max/QEMM, etc) must be
  288.            removed before the 32 bit version will run. SA
  289.  
  290. 9/03/91
  291. Ver. 1.1   RIGHT <1.33 0.0 0.0 > in VIEW_POINT produces much better circles.
  292.            COLOR for the light sources moved outside the TEXTURE block (oops.
  293.            I'm still learning...) Jeff
  294.  
  295. 8/24/91
  296. Ver. 1.0   Original release, DKB, simple TurboC parser by Jeff.
  297.            Very slow by itself, workable when used in conjunction with 
  298.            Steve's optimizing bounder.  (TXT2DKB).
  299.  
  300. Addresses:
  301.                                         Steve Anger, Guelph, ON, Canada
  302.                                         CIS: 70714,3113
  303.                                         Internet: 70714.3113@compuserve.com
  304.  
  305.                                         Jeff Bowermaster, Greensboro, NC
  306.                                         CIS: 72040,2117
  307.                                         Internet: bowerman@garfield.ncat.edu
  308.  
  309.                                         ADEnet Boards i.e.:TGA: (510)524-2780
  310.