pfconv(1pf)

pfconv - OpenGL Performer file translator

As shipped in IRIX 6.5.30. Last changed in IRIX 6.5.15.

NAME
     pfconv - OpenGL Performer file translator

SYNOPSIS
     pfconv [ options ] infile1 [ infile2 ... ] outfile

DESCRIPTION
     pfconv is one of the sample programs distributed with the OpenGL
     Performer high-performance graphics library.  pfconv loads one or more
     files into an OpenGL Performer scene graph, and then writes the resulting
     scene graph out to a named output file.  It is installed in the /usr/sbin
     directory on IRIX, and /usr/bin/X11 on Linux.

     The following formats support file writing:


          dwb       Coryphaeus Software Designer's Workbench format

          medit     Medit productions modeler format

          pfa       OpenGL Performer ASCII file format

          pfb       OpenGL Performer high-speed binary file format
                    (recommended format)

     Here's an example that generates a fast-loading OpenGL Performer PFB
     format file representing a Sierpinski sponge:


          pfconv 2.sponge example.pfb
          perfly example.pfb



     Preconverting files to the pfb format can provide a great speed advantage
     for demos and other applications where fast database loading is
     important.



   pfconv command line options
          -b <mode>,<value>             -Set builder mode (default value is OFF)
          -B <mode>,<value>             -Set builder mode (default value is ON)
                              See the pfdBldrMode reference page
                              for more information.
              0 -> PFDBLDR_MESH_ENABLE
              1 -> PFDBLDR_MESH_SHOW_TSTRIPS
              2 -> PFDBLDR_MESH_INDEXED
              3 -> PFDBLDR_MESH_MAX_TRIS
              4 -> PFDBLDR_MESH_RETESSELLATE
              5 -> PFDBLDR_MESH_LOCAL_LIGHTING
             10 -> PFDBLDR_AUTO_COLORS
                   0 -> PFDBLDR_COLORS_PRESERVE  + leave colors alone
                   1 -> PFDBLDR_COLORS_MISSING   - make missing colors
                   2 -> PFDBLDR_COLORS_GENERATE  - make all colors
                   3 -> PFDBLDR_COLORS_DISCARD   - toss existing colors
             11 -> PFDBLDR_AUTO_NORMALS
                   0 -> PFDBLDR_NORMALS_PRESERVE - leave normals alone
                   1 -> PFDBLDR_NORMALS_MISSING  + make missing normals
                   2 -> PFDBLDR_NORMALS_GENERATE - make all normals
                   3 -> PFDBLDR_NORMALS_DISCARD  - toss existing normals
             12 -> PFDBLDR_AUTO_TEXTURE
                   0 -> PFDBLDR_TEXTURE_PRESERVE + leave texture coord alone
                   1 -> PFDBLDR_TEXTURE_MISSING  - make missing texture coord
                   2 -> PFDBLDR_TEXTURE_GENERATE - make all texture coord
                   3 -> PFDBLDR_TEXTURE_DISCARD  - toss existing texture coord
             13 -> PFDBLDR_AUTO_ORIENT
                   0 -> PFDBLDR_ORIENT_PRESERVE  - leave normal and order alone
                   1 -> PFDBLDR_ORIENT_NORMALS   - make normal match vertex order
                   2 -> PFDBLDR_ORIENT_VERTICES  + make vertex order match normal
             15 -> PFDBLDR_AUTO_DISABLE_TCOORDS_BY_STATE
                   0 - dont remove tcoords if no texture specified
                   1 - remove tcoords if no texture specified
             16 -> PFDBLDR_AUTO_DISABLE_NCOORDS_BY_STATE
                   0 - dont remove ncoords if no material specified
                   1 - remove ncoords if no material specified
             17 -> PFDBLDR_AUTO_LIGHTING_STATE_BY_NCOORDS
                   0 - dont automatically set lighting enable based on presence of ncoords
                   1 - automatically set lighting enable based on presence of ncoords
             18 -> PFDBLDR_AUTO_LIGHTING_STATE_BY_MATERIALS
                   0 - dont automatically set lighting enable based on presence of material
                   1 - automatically set lighting enable based on presence of material
             19 -> PFDBLDR_AUTO_TEXTURE_STATE_BY_TEXTURES
                   0 - dont automatically set texture enable based on presence of tcoords
                   1 - automatically set texture enable based on presence of tcoords
             20 -> PFDBLDR_AUTO_TEXTURE_STATE_BY_TCOORDS
                   0 - dont automatically set texture enable based on presence of texture
                   1 - automatically set texture enable based on presence of texture
             30 -> PFDBLDR_BREAKUP
             31 -> PFDBLDR_BREAKUP_SIZE
             32 -> PFDBLDR_BREAKUP_BRANCH
             33 -> PFDBLDR_BREAKUP_STRIP_LENGTH
             34 -> PFDBLDR_SHARE_MASK
             35 -> PFDBLDR_ATTACH_NODE_NAMES
             36 -> PFDBLDR_DESTROY_DATA_UPON_BUILD
             37 -> PFDBLDR_PF12_STATE_COMPATIBLE
             38 -> PFDBLDR_BUILD_LIMIT  -maximum number of tris/strip
          -F <path>                     -Set file path
          -n <notify>                   -Debug level
          -o <mode>,<value>             -Set optimizer mode (default value is OFF)
          -O <mode>,<value>             -Set optimizer mode (default value is ON)
              0 -> pfdMakeShare                      defaults to ON
              1 -> pfdCombineLayers                  defaults to ON
              2 -> pfFlatten                         defaults to ON
              3 -> pfdCleanTree                      defaults to ON
              4 -> pfdCombineBillboards,<size_limit> defaults to OFF
              5 -> pfdFreezeTransforms               defaults to OFF
              6 -> pfPartition                       defaults to OFF



     Examine the source code to pfconv to understand the optimization
     transformations that can be applied to files as they are loaded.  By
     default, only safe optimizations are performed, but there are several
     other optimizations, some quite aggressive, that can be enabled



   Supported Database Formats
     pfconv, like all OpenGL Performer applications, is able to directly load
     3D data in a large selection of popular formats and draw that data at
     high speed.  All of the following file formats are understood by pfconv:


          3ds       AutoDesk 3DStudio binary data
          bin       Minor SGI format used by powerflip
          bpoly     Side Effects Software PRISMS binary
          byu       Brigham Young University CAD/FEA data
          dwb       Coryphaeus Software Designer's Workbench
          dxf       AutoDesk AutoCAD ASCII format
          flt11     MultiGen public domain Flight v11 format
          flt14     MultiGen OpenFlight v14 format
          gds       McDonnell-Douglas GDS things data
          gfo       Minor SGI format (radiosity output)
          im        Minor SGI format (OpenGL Performer example)
          irtp      AAI/Graphicon Interactive Real-Time PHIGS
          iv        SGI OpenInventor / Silicon Studio Keystone
          lsa       Lightscape Technologies radiosity (ASCII)
          lsb       Lightscape Technologies radiosity (binary)
          m         University of Washington mesh data
          medit     Medit Productions medit modeling tool
          nff       Eric Haines' ray tracing test data format
          obj       Wavefront Technologies data format
          phd       Minor SGI format (polyhedra)
          pfa       OpenGL Performer ASCII database format
          pfb       OpenGL Performer BINARY database format
          poly      Side Effects Software PRISMS ASCII data
          pts       University of Washington point data
          ptu       Minor SGI format (OpenGL Performer example)
          sgf       US NAVY standard graphics format
          sgo       Minor SGI format
          spf       US NAVY simple polygon format
          sponge    Sierpinski sponge 3D fractal generator
          star      Yale University compact star chart data

          stla      3D Structures Stereolithography (ASCII)
          stlb      3D Structures Stereolithography (binary)
          sv        Format of John Kichury's i3dm modeler
          tri       University of Minnesota Geometry Center data
          unc       University of North Carolina data



   Learning More
     Once you've seen OpenGL Performer in action, you will want to learn more
     about it.  The OpenGL Performer Programming Guide and the OpenGL
     Performer Release Notes are the primary sources of information, but the a
     number of information sources are available to give you a good start in
     your learning process. The origin of this quest is the Performer man
     page. Just type "man performer" and just about everything you might want
     to know will be there or in one of the on-line resources listed there.


SEE ALSO
     performer, pfconv