home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 28 / amigaformatcd28.iso / -seriously_amiga- / graphics / 3dto3d / readme < prev    next >
Text File  |  1998-05-09  |  13KB  |  527 lines

  1.  
  2.  
  3.                 3Dto3D
  4.  
  5.           a little 3D to 3D Format Converter Version 3.0
  6.                              by Thomas Baier
  7.                   March 1998
  8.              Compuserve: 100527,3011
  9.                Internet  : thbaier@ibm.net
  10.        WWW: http://ourworld.compuserve.com/homepages/thbaier
  11.             Copyright by Thomas Baier
  12.  
  13.  
  14.  
  15.    Version 1.0 and later of 3Dto3D are Shareware and may be distributed
  16.    freely, provided that you leave this documentation file in the
  17.    archive. Note that this program is fully functional.
  18.  
  19.    If you enjoy this program, use it frequently, and can afford to pay
  20.    a registration fee, then send $20 to:
  21.  
  22.             Thomas Baier
  23.             Ammerseestr.9
  24.             85551 Kirchheim
  25.             Germany
  26.  
  27.    Please include your name and mailing address.
  28.    With this registration you help me improve 3dto3d. With registration you
  29.    can expect a prompt response on questions or bugs. Thanks.
  30.  
  31.  
  32.    This program is a little utility to convert 3D files to a number of
  33.    other 3D formats. It can generate smooth triangles for those formats
  34.    that support it, allowing you to specify the angle under which the
  35.    faces should be smoothed.
  36.  
  37.  
  38.    NOTE TO SOURCECODE
  39.  
  40.    This program was developed on a INTEL platform. If you want to build
  41.    versions for other plattforms than DOS/Windows95 or WindosNT,
  42.    please keep attention !!!
  43.    Please keep in mind, that INTEL platforms use IEEE floating format.
  44.  
  45.    If you have problems, bugs or suggentions please send me a mail.
  46.  
  47.    Thanks to my brother Bernhard. He made this distribution possible.
  48.    Source code obfuscation done by COBF (bernhard.baier@ibm.net)
  49.    Thanks.
  50.  
  51.    Any modifications of the source modules prohibited!
  52.  
  53.    CONTENT
  54.  
  55.    README        this file
  56.    a*.cc        C++ source modules
  57.    *.h            needed header files
  58.    Makefile        Makefile for Linux / GCC 2.7 or better
  59.             Please modify for other unices!
  60.    3dto3d        Linux ELF executable for 486+ machines
  61.    chess.raw        sample file for 3dto3d
  62.  
  63.  
  64.  
  65.    INPUT
  66.  
  67.    This version supports the following input formats:
  68.  
  69.    - *.RAW
  70.      Simple RAW format in the form: pnt0 pnt1 pnt2
  71.      Multiple objects are supported if the file is in the form:
  72.      NAME_OBJECT1
  73.      pnta00 pnta01 pnta02
  74.      pnta10 pnta11 pnta12
  75.      pnta20 pnta21 pnta22
  76.      ...
  77.      NAME_OBJECT2
  78.      pntb00 pntb01 pntb02
  79.      pntb10 pntb11 pntb12
  80.      pntb20 pntb21 pntb22
  81.      ...
  82.  
  83.      see chess.raw for an example.
  84.  
  85.    - *.3DS/*.PRJ
  86.      Binary mesh format for 3D Studio (Trademark ...)
  87.      only objects with faces are supported
  88.      Splitting by texture surfaces is supported
  89.  
  90.    - *.IOB/*.OBJ
  91.      Binary mesh format for Imagine 2.x/3.x (Trademark ...)
  92.      only objects with faces are supported
  93.      Tip: If you have a object generated in the form - editor, load it
  94.      into the detail editor, select it, use the "merge" command and
  95.      save it as a ".obj" file. Now the object is ready for converting.
  96.      Tip: If you have object files with the extension .iob (Amiga
  97.      extension ??) rename it to ".obj".
  98.  
  99.    - *.LWO
  100.      Binary mesh format for Lightwave
  101.      Splitting by texture surfaces is supported
  102.  
  103.    - *.DXF
  104.       Well known interchange format of Autodesk
  105.       Objects by layer or color are supported
  106.  
  107.    - *.POB
  108.        POV-Ray binary scene format
  109.        Only sets of triangles or meshes supported
  110.  
  111.  
  112.    OUTPUT
  113.  
  114.    This version supports the following output formats:
  115.  
  116.    - *.RAW
  117.      The converter can generate a smooth RAW from an unsmoothed
  118.      RAW and vice versa.
  119.  
  120.    - *.UDO/*.INC
  121.      Userdefined Object format for Moray V2.x and a inc file for
  122.      POVRAY2.2 or 3.0 or POLYRAY.
  123.      The converter writes a UDO file and a corresponding POV-Ray or
  124.      Polyray include file, generating triangles (poly's) and
  125.      smooth_triangles (patches). Use the /e parameter to reduce
  126.      the edge count if you are getting too many edges in the UDO file.
  127.      A value of /e5 will retain just about all edges that are not coplanar.
  128.      A value of /e60 will throw out lots of edges and retain only pretty
  129.      sharp contours.
  130.      Additional wired and wired/blobby output for povray is supported
  131.  
  132.    - *.ASC
  133.      ASCII object format for 3D Studio. Hidden edges are supported
  134.  
  135.    - *.OBT
  136.      ASCII object format for Highlight Pro
  137.  
  138.    - *.RPL
  139.      ASCII object macro format for Real 3D. (Version 3.12)
  140.  
  141.    - *.3DS
  142.      Binary object format for 3D Studio. Hidden edges are supported
  143.  
  144.    - *.IOB/*.OBJ
  145.      Binary object format for Imagine.
  146.      Hidden edges (Quick edges) and smoothing (Sharp Edges) are supported
  147.  
  148.    - *.RWX
  149.      ASCII objectformat for RenderWare
  150.  
  151.    - *.WRL
  152.      ASCII objectformat for VRML 1.0
  153.  
  154.    - *.DXF
  155.      ASCII objectformat for Autocad DXF, output with 3DFACE or POLYLINE
  156.  
  157.    - *.LWO
  158.      Binary mesh format for Lightwave
  159.  
  160.    - *.X
  161.      Direct X ASCII format for Mircrosoft
  162.  
  163.    - *.OBJ
  164.      Binary meshformat for Real 3D
  165.  
  166.    If inputtype and outputtype are the same, $$$ is used as filename.
  167.  
  168.  
  169. Usage:
  170.         3dto3d xxxx [options]
  171. Example:
  172.         3dto3d chess /oe20 /ot3
  173. Options:
  174.         /ifvalue (value = Inputtype)
  175.             value = 0 RAW (default)
  176.             - Supported switches:
  177.                 /iv
  178.                 /iu
  179.                 /it
  180.                 /ix
  181.  
  182.             value = 1 3DS (3D Studio)
  183.             - reads *.3ds and *.prj
  184.             - Could split every object by surfaces
  185.             - Supported switches:
  186.                 /iv
  187.                 /iu
  188.                 /it
  189.                 /ix
  190.                 /imvalue:
  191.                     value = 0 => no split
  192.                     value = 1 => split by surfaces
  193.  
  194.             value = 2 OBJ (Imagine)
  195.             - Supported switches:
  196.                 /iv
  197.                 /iu
  198.                 /it
  199.                 /ix
  200.  
  201.             value = 3 LWO (Lightwave)
  202.             - Supported switches:
  203.                 /iv
  204.                 /iu
  205.                 /it
  206.                 /ix
  207.                 /imvalue:
  208.                     value = 0 => no split
  209.                     value = 1 => split by surfaces
  210.  
  211.             value = 4 DXF <AutoCad Object>
  212.             - supports objects by layer or color
  213.             - Supported switches:
  214.                 /iv
  215.                 /iu
  216.                 /it
  217.                 /ix
  218.                 /imvalue:
  219.                     value = 0 => Objects by Layer
  220.                     value = 1 => Objects by Color
  221.  
  222.             value = 5 POB <Povray Binary>
  223.             - recognizes only triangles and meshes
  224.             - Supported switches:
  225.                 /iv
  226.                 /iu
  227.                 /it
  228.                 /ix
  229.  
  230.         /iv(Verbose on)
  231.         - gives status messages on the progress of the conversion
  232.  
  233.         /iu(Unify Mesh on)
  234.         - changing all normal vectors pointing outside
  235.  
  236.         /itvalue (value = Swapmode)
  237.             value = 0 normal (default);
  238.             value = 1 swap X <-> Y;
  239.             value = 2 swap X <-> Z
  240.             value = 3 swap Y <-> Z
  241.         - swaps axis
  242.  
  243.         /ixvalue (val = sizingvalue, default 1.0)
  244.         - sizes the mesh.
  245.           values from 0.0 to 1.0 shrink the mesh
  246.           values greater than 1.0 enlarg the mesh
  247.           negative values mirror the mesh
  248.  
  249.         /imvalue (value = Mode)
  250.         - mode has different meaning depending on
  251.           import format
  252.  
  253.         /ofvalue (value = Outputtype)
  254.             value = 0 RAW
  255.             - makes a pure RAW file for testing
  256.               form: pnt0 pnt1 pnt2
  257.             - Supported switches:
  258.                 /ov
  259.                 /ou
  260.                 /ot
  261.                 /ox
  262.  
  263.             val = 1 Smoothed RAW
  264.             - makes a smoothed Raw file
  265.               form: pnt0 norm0 pnt1 norm1 pnt2 norm2
  266.             - Supported switches:
  267.                 /ov
  268.                 /ou
  269.                 /ot
  270.                 /ox
  271.                 /os
  272.  
  273.             val = 2 UDO + POV/INC <Moray/Povray>(default)
  274.             - makes a POVRAY include File with triangles
  275.               and a MORAY UDO file
  276.             - Supported switches:
  277.                 /ov
  278.                 /ou
  279.                 /ot
  280.                 /ox
  281.                 /os
  282.                 /oe
  283.  
  284.             val = 3 UDO + POLY/INC <Moray/Polyray>
  285.             - makes a POLYRAY include File with triangles
  286.               and a MORAY UDO file
  287.             - Supported switches:
  288.                 /ov
  289.                 /ou
  290.                 /ot
  291.                 /ox
  292.                 /os
  293.                 /oe
  294.  
  295.             val = 4 ASC <3DStudio>
  296.             - makes a 3DStudio ASC file
  297.             - /e affects hiding edges for better viewing
  298.             - Supported switches:
  299.                 /ov
  300.                 /ou
  301.                 /ot
  302.                 /ox
  303.                 /os
  304.                 /oe
  305.  
  306.             val = 5 OBT <HighLight>
  307.             - makes a HighLightPro OBT file
  308.               (multible objects are converted to
  309.                multible files, f00000, f00001, ...)
  310.             - Supported switches:
  311.                 /ov
  312.                 /ou
  313.                 /ot
  314.                 /ox
  315.  
  316.             val = 6 RPL <Real3D Macro>
  317.             - makes Real3D RPL file, ASCII Macro
  318.             - Supported switches:
  319.                 /ov
  320.                 /ou
  321.                 /ot
  322.                 /ox
  323.  
  324.             val = 7 3DS <3DStudio>
  325.             - makes a 3DStudio binary file
  326.             - /e affects hiding edges for better viewing
  327.             - Supported switches:
  328.                 /ov
  329.                 /ou
  330.                 /ot
  331.                 /ox
  332.                 /os
  333.                 /oe
  334.  
  335.             val = 8 UDO + POV/INC <Moray/Povray>(wire)
  336.             - makes a POVRAY include File
  337.               and a MORAY UDO file
  338.               For every edge in the object a cylinder
  339.               and for every vertex a sphere is output
  340.               The radius is controlled via /r
  341.               /r1.0 for radius 1.0
  342.               Can be used to make a 'real' wireframe object
  343.             - Supported switches:
  344.                 /ov
  345.                 /ou
  346.                 /ot
  347.                 /ox
  348.                 /os
  349.                 /oe
  350.                 /or
  351.  
  352.             val = 9 UDO + POV/INC <Moray/Povray>(blobbywire)
  353.             - makes a POVRAY include File
  354.               and a MORAY UDO file
  355.               For every edge in the object a line of blobs
  356.               and for every vertex a blob is output
  357.               The radius and the spacing is controlled via /r
  358.               /r1.0 for radius 1.0
  359.             - Supported switches:
  360.                 /ov
  361.                 /ou
  362.                 /ot
  363.                 /ox
  364.                 /os
  365.                 /oe
  366.                 /or
  367.  
  368.             val = 10 OBJ <Imagine Object>
  369.             - makes a Imagine binary file
  370.             - /e affects hiding edges for better viewing
  371.               (Quickedges)
  372.             - /s affects smoothing edges for better viewing
  373.               (Sharpedges). A low value makes more edges sharp.
  374.             - Supported switches:
  375.                 /ov
  376.                 /ou
  377.                 /ot
  378.                 /ox
  379.                 /os
  380.                 /oe
  381.  
  382.             val = 11 RWX <RenderWare Object>
  383.             - makes RenderWare object file, ASCII
  384.             - Supported switches:
  385.                 /ov
  386.                 /ou
  387.                 /ot
  388.                 /ox
  389.  
  390.             val = 12 WRL <VRML 1.0 Object>
  391.             - makes VRML object file, ASCII
  392.             - Supported switches:
  393.                 /ov
  394.                 /ou
  395.                 /ot
  396.                 /ox
  397.  
  398.             val = 13 DXF < Autocad DXF Object>
  399.             - makes DXF object file, ASCII
  400.             - Supported switches:
  401.                 /ov
  402.                 /ou
  403.                 /ot
  404.                 /ox
  405.                 /imvalue:
  406.                     value = 0 => 3DFACE
  407.                     value = 1 => POLYLINE
  408.  
  409.             val = 14 LWO < LWO Lightwave Object>
  410.             - makes LWO object file and a Lightwave Scene file
  411.               (multible objects are converted to
  412.                multible files)
  413.             - Supported switches:
  414.                 /ov
  415.                 /ou
  416.                 /ot
  417.                 /ox
  418.                 /os
  419.  
  420.             val = 15 UDO + POV3/INC <Moray/Povray>
  421.             - makes a POVRAY 3.0 include File with triangles
  422.               and a MORAY UDO file
  423.             - Supported switches:
  424.                 /ov
  425.                 /ou
  426.                 /ot
  427.                 /ox
  428.                 /os
  429.                 /oe
  430.  
  431.             val = 16 Direct X <Microsoft>
  432.             - makes a Direct 3D X file, smoothing is supported
  433.             - Supported switches:
  434.                 /ov
  435.                 /ou
  436.                 /ot
  437.                 /ox
  438.                 /os
  439.  
  440.             val = 17 OBJ <Real3D Object>
  441.             - makes a Real 3D binary object file
  442.             - Supported switches:
  443.                 /ov
  444.                 /ou
  445.                 /ot
  446.                 /ox
  447.  
  448.         /osvalue (value = Smoothing Angle in degrees, default 70.0ø)
  449.         - smoothes tri's with a normal angle below value
  450.  
  451.         /oevalue (value = Edge Detect Angle in degree, default 1.0ø)
  452.         - throws out edges with an angle below value
  453.  
  454.         /orvalue (value = radius for wireframe objetcs, default 1.0)
  455.  
  456.         /ov(Verbose on)
  457.         - gives status messages on the progress of the conversion
  458.  
  459.         /ou(Unify Mesh on)
  460.         - changing all normal vectors pointing outside
  461.  
  462.         /otvalue (value = Swapmode)
  463.             value = 0 normal (default);
  464.             value = 1 swap X <-> Y;
  465.             value = 2 swap X <-> Z
  466.             value = 3 swap Y <-> Z
  467.         - swaps axis
  468.  
  469.         /oxvalue (val = sizingvalue, default 1.0)
  470.         - sizes the mesh.
  471.           values from 0.0 to 1.0 shrink the mesh
  472.           values greater than 1.0 enlarg the mesh
  473.           negative values mirror the mesh
  474.  
  475.         /omvalue (value = Mode)
  476.         - mode has different meaning depending on
  477.           export format
  478.  
  479.  
  480.                 History
  481.     Version 3.0
  482.     - 3dto3d, 3DWin and 3DWinOGL share same source of fileformats
  483.     - Direct X added
  484.     - Real 3D added
  485.     - DXF added
  486.     - POB added
  487.     - lots of improvements
  488.  
  489.     Version 1.7
  490.     - Strang memory bug fixed during loading lwo files
  491.     - lwo output implemented
  492.  
  493.     Version 1.6
  494.     - Support for Lightwave objects added
  495.     - Bug with imgine naming fixed (imagine writes zero name)
  496.     - Better obt (Highlight) support. Multible Objects are
  497.       converted to multible files in the form f00000.obt, f00001.obt
  498.     - Imagine 2.0/3.0/4.0 limits object size to 32767 vertics or edges
  499.       or faces.
  500.  
  501.     Version 1.5
  502.     - DXF (Autocad) output supported (/o13)
  503.  
  504.     Version 1.4
  505.     - OBJ (Imagine) output supported (/o10)
  506.         - Quickedges support (hidden edges in meshes) for 3ds and obj (/e)
  507.         - mesh sizing (/x)
  508.         - mesh unifing (/u)
  509.         - SharpEdges (smoothing) support for obj (/s)
  510.         - NT console compile (3dnt3d.exe)
  511.         - RWX (RenderWare) output supported (/o11)
  512.         - WRL (VRML 1.0) output supported (/o12)
  513.  
  514.         Version 1.3
  515.         - bugfix for raw input
  516.  
  517.         Version 1.2
  518.         - blobby wire
  519.  
  520.         Version 1.1
  521.         - improved 3ds import
  522.  
  523.         Version 1.0
  524.         - first public release
  525.  
  526.  
  527.