

                                3Dto3D

              a little 3D to 3D Format Converter Version 1.6
                             by Thomas Baier
                              November 1996
                         Compuserve: 100527,3011
                       Internet  : thbaier@ibm.net
           WWW: http://ourworld.compuserve.com/homepages/thbaier
                        Copyright by Thomas Baier



   Version 1.0 and later of 3Dto3D are Shareware and may be distributed
   freely, provided that you leave this documentation file in the
   archive. Note that this program is fully functional.

   Additionally you need the DOS4GW - Extender Version 1.95/1.96/1.97.
   Add there is a Win95/NT version called 3dnt3d.exe.
   
   If you enjoy this program, use it frequently, and can afford to pay
   a registration fee, then send $10 to: 
   
                        Thomas Baier 
                        Ammerseestr.9
                        85551 Kirchheim 
                        Germany
   
   Please include your name and mailing address.
   With this registration you help me improve 3dto3d. With registration you 
   can expect a prompt response on questions or bugs. Thanks. 
   

   This program is a little utility to convert 3D files to a number of
   other 3D formats. It can generate smooth triangles for those formats
   that support it, allowing you to specify the angle under which the
   faces should be smoothed.


   INPUT

   This version supports the following input formats:

   - .RAW
     Simple RAW format in the form: pnt0 pnt1 pnt2
     Multiple objects are supported if the file is in the form:
     NAME_OBJECT1
     pnta00 pnta01 pnta02
     pnta10 pnta11 pnta12
     pnta20 pnta21 pnta22
     ...
     NAME_OBJECT2
     pntb00 pntb01 pntb02
     pntb10 pntb11 pntb12
     pntb20 pntb21 pntb22
     ...

     see chess.raw for an example.

   - .3DS
     Binary mesh format for 3D Studio (Trademark ...)
     only objects with faces are supported

   - .OBJ
     Binary mesh format for Imagine 2.x/3.x (Trademark ...)
     only objects with faces are supported
     Tip: If you have a object generated in the form - editor, load it
     into the detail editor, select it, use the "merge" command and
     save it as a ".obj" file. Now the object is ready for converting.
     Tip: If you have object files with the extension .iob (Amiga
     extension ??) rename it to ".obj".
   - .lwo
     Binary mesh format for Lightwave


   OUTPUT

   This version supports the following output formats:

   - .RAW
     The converter can generate a smooth RAW from an unsmoothed
     RAW and vice versa.
   - .UDO/.INC
     Userdefined Object format for Moray V2.x and a inc file for
     POVRAY or POLYRAY.
     The converter writes a UDO file and a corresponding POV-Ray or 
     Polyray include file, generating triangles (poly's) and 
     smooth_triangles (patches). Use the /e parameter to reduce
     the edge count if you are getting too many edges in the UDO file.
     A value of /e5 will retain just about all edges that are not coplanar.
     A value of /e60 will throw out lots of edges and retain only pretty
     sharp contours.
     Additional wired and wired/blobby output for povray is supported
   - .ASC
     ASCII object format for 3D Studio. Hidden edges are supported
   - .OBT
     ASCII object format for Highlight Pro
   - .RPL
     ASCII object macro format for Real 3D. (Version 3.12)
   - .3DS
     Binary object format for 3D Studio. Hidden edges are supported
   - .OBJ
     Binary object format for Imagine.
     Hidden edges (Quick edges) and smoothing (Sharp Edges) are supported
   - .RWX
     ASCII objectformat for RenderWare
   - .WRL
     ASCII objectformat for VRML 1.0
   - .DXF
     ASCII objectformat for Autocad DXF, output with 3DFACE

   If inputtype and outputtype are the same, $$$ is used as filename.


Usage:
                3dto3d xxxx [options]
Example:
                3dto3d chess /e20 /t3
Options:
                /svalue (value = Smoothing Angle in degrees, default 70.0)
                - smoothes tri's with a normal angle below value
                  affects only output of /o1, /o2, /o3, /o10

                /evalue (value = Edge Detect Angle in degree, default 1.0)
                - throws out edges with an angle below value
                  affects POV/UDO, 3DS and OBJ files created with
                  /o2, /o3, /o4, /o7, /o8, /o9, /o10

                /v(Verbose on)
                - gives status messages on the progress of the conversion

                /u(Unify Mesh on)
                - changing all normal vectors pointing outside

                /j(write absolute path to udo/inc file)

                /rvalue (value = radius for wireframe objetcs, default 1.0)

                /tvalue (value = Swapmode)
                        value = 0 normal (default);
                        value = 1 swap X <-> Y;
                        value = 2 swap X <-> Z
                        value = 3 swap Y <-> Z
                - swaps axis

                /xvalue (val = sizingvalue, default 1.0)
                - sizes the mesh.
                  values from 0.0 to 1.0 shrink the mesh
                  values greater than 1.0 enlarg the mesh
                  negative values mirror the mesh

                /ivalue (value = Inputtype)
                        value = 0 RAW (default)
                        value = 1 3DS (3D Studio)
                        value = 2 OBJ (Imagine)
                        value = 3 LWO (Lightwave)

                /ovalue (value = Outputtype)
                        value = 0 RAW
                        - makes a pure RAW file for testing
                          form: pnt0 pnt1 pnt2

                        val = 1 Smoothed RAW
                        - makes a smoothed Raw file
                          form: pnt0 norm0 pnt1 norm1 pnt2 norm2

                        val = 2 UDO + POV/INC <Moray/Povray>(default)
                        - makes a POVRAY include File with triangles
                          and a MORAY UDO file

                        val = 3 UDO + POLY/INC <Moray/Polyray>
                        - makes a POLYRAY include File with triangles
                          and a MORAY UDO file

                        val = 4 ASC <3DStudio>
                        - makes a 3DStudio ASC file
                        - /e affects hiding edges for better viewing

                        val = 5 OBT <HighLight>
                        - makes a HighLightPro OBT file
                          (multible objects are converted to
                           multible files)

                        val = 6 RPL <Real3D Macro>
                        - makes Real3D RPL file, ASCII Macro

                        val = 7 3DS <3DStudio>
                        - makes a 3DStudio binary file
                        - /e affects hiding edges for better viewing

                        val = 8 UDO + POV/INC <Moray/Povray>(wire)
                        - makes a POVRAY include File
                          and a MORAY UDO file
                          For every edge in the object a cylinder
                          and for every vertex a sphere is output
                          The radius is controlled via /r
                          /r1.0 for radius 1.0
                          Can be used to make a 'real' wireframe object

                        val = 9 UDO + POV/INC <Moray/Povray>(blobbywire)
                        - makes a POVRAY include File
                          and a MORAY UDO file
                          For every edge in the object a line of blobs
                          and for every vertex a blob is output
                          The radius and the spacing is controlled via /r
                          /r1.0 for radius 1.0

                        val = 10 OBJ <Imagine Object>
                        - makes a Imagine binary file
                        - /e affects hiding edges for better viewing
                          (Quickedges)
                        - /s affects smoothing edges for better viewing
                          (Sharpedges). A low value makes more edges sharp.

                        val = 11 RWX <RenderWare Object>
                        - makes RenderWare object file, ASCII

                        val = 12 WRL <VRML 1.0 Object>
                        - makes VRML object file, ASCII

                        val = 13 DXF < Autocad DXF Object>
                        - makes DXF object file, ASCII, 3DFACE



                                History

        Version 1.6
        - Support for Lightwave objects added
        - Bug with imgine naming fixed (imagine writes zero name)
        - Better obt (Highlight) support. Multible Objects are 
          converted to multible files in the form f00000.obt, f00001.obt
        - Imagine 2.0/3.0/4.0 limits object size to 32767 vertics or edges
          or faces. 

        Version 1.5
        - DXF (Autocad) output supported (/o13)

        Version 1.4
        - OBJ (Imagine) output supported (/o10)
        - Quickedges support (hidden edges in meshes) for 3ds and obj (/e)
        - mesh sizing (/x)
        - mesh unifing (/u)
        - SharpEdges (smoothing) support for obj (/s)
        - NT console compile (3dnt3d.exe)
        - RWX (RenderWare) output supported (/o11)
        - WRL (VRML 1.0) output supported (/o12)

        Version 1.3
        - bugfix for raw input

        Version 1.2
        - blobby wire

        Version 1.1
        - improved 3ds import

        Version 1.0
        - first public release

