P3D_GEN.TXT


Remove Frame

            PSC P3D VERSION 2.2 AVAILABLE
            -----------------------------

   The fifth release of the Pittsburgh Supercomputing Center's P3D
software is now (finally!) available.  This software uses lisp with slight
extensions to store three-dimensional models; we are using it as the
standard format for 3D models within the PSC.  A simple lisp
interpreter is included with the P3D release, so there is no need to
have access to any vendor's lisp to run this software.

   The copyright to the P3D software is owned by Carnegie Mellon
University, of which the Pittsburgh Supercomputing Center is a
department.  We copyright it so that no one can grab it and market it
as their own.  Feel free to copy it and distribute it around your own
site, and to modify it.  We ask that you do not redistribute it, as we
want new users to get it from us so we can keep track of it and
maintain a mailing list.  If you have modifications to the code or bug
reports, or would like to arrange to redistribute it, please contact
us.  This code is provided 'as is' without expressed or implied
warranty;  the PSC makes no representations about its suitability for
any particular purpose.


HIGHLIGHTS

The most fundamental change with this release is that the P3D interpreter
now stores geometrical implementation in a much more compact form.  This
will allow models of roughly twice the earlier size to fit in a machine's
physical memory.

There have been numerous improvements to the Motif user interface to
the P3D interpreter.  That interface can now generate flybys of P3D
models, for example.  The interface will also link and run with the
GL renderer on Silicon Graphics and IBM RS6000 platforms.

The DrawP3D library has been improved considerably.  Two interactive
renderers, a version of the Painter renderer and an interface to Silicon
Graphics GL, have been added.  This means that programs calling
DrawP3D can now draw directly to a workstation screen.  Numerous bugs
have also been patched.

MarchP3D has been completely rewritten to take advantage of the new
functionality of DrawP3D, and now uses DrawP3D's isosurface routine
rather than that from the Scry package from Lawrence Berkeley Labs.
This is now a much more useful and flexible tool.  It can, for
example, now do on-screen rotations of the isosurfaces it generates.

The Sun Phigs renderer has been rewritten to match the new version of
Sun Phigs, and will link and run with the Motif or Xview user interfaces.


RENDERERS

The P3D software currently supports nine renderers.  They are:

Painter, a Painter's Algorithm renderer.  This runs on just
about everything, but requires the PSC's DrawCGM library and
can only draw flat-shaded polygons.  If you need the DrawCGM
library, get the GPlot software distribution by anonymous
FTP from calpe.psc.edu, in the directory pub/gplot.

Silicon Graphics Inc. GL language renderer interface.  This
is the recommended renderer for SGI workstations and IBM R6000
workstations.

Generic Phigs renderer interface.  This renderer should work with
only minor modification on any implementation of Phigs, but because
(like generic Phigs) it does not handle light sources it is not
the recommended renderer on any platform.

Sun Phigs+ renderer interface.  This renderer works with
Sun Phigs.  Try this renderer if you have a Sun platform, 
and if you don't like the results, switch to the Painter 
renderer.

DEC Phigs+ renderer interface.  This renderer should work with
DEC Phigs.  It is the recommended renderer for DEC platforms
with 24 bit displays and graphics accelerators, for example
accelerated DECStation 5000's.  For 8 bit DECStations, one might
want to try both this renderer and the Painter renderer.

Dore renderer, which is an interface to the Kubota Pacific Dore
renderer software.  This is the recommended renderer for
Stardent workstations.

Rayshade ray tracer renderer interface.  This renderer is an
interface to Craig Kolb and associates' Rayshade ray tracer
(version 3.0, patch level 5).  It produces some very nice images,
very slowly.  The current implementation is a first release
of the interaface and does not properly support all P3D
model elements (for example, vertex colors).
See the associated document in the 'doc' subdirectory for
more information on the limitations of the renderer, but don't
get too discouraged by them;  it can still do an excellent job
on a wide range of models.  This renderer should run on any
platform.  The Rayshade renderer also uses the DrawCGM library
by default, but can be switched to using the Utah Raster Library
by applying the proper -D option to the compilation of
src/rayshade/outputp.c .  Note that some optimizing compilers
have problems with some of the routines in src/rayshade;  if
you have problems with the ray tracer try recompiling some or
all of these routines without -O.  This renderer supports
facilities for doing multiple scenes for animation purposes.

ART ray tracer interface.  This renderer is an interface to
the ART ray tracer, distributed with the VORT package.  VORT
is available by anonymous FTP from gondwana.ecr.mu.oz.au.
This is currently the best free high-quality renderer for P3D.
The ART folks have been very generous in supporting new
features for us, and now almost all aspects of P3D are well
supported.  This renderer also supports facilities for doing
multiple scenes for animation purposes.  See doc/art_ren.t for
further information.  This renderer interface should run on
any platform.

Pixar RenderMan interface.  This renderer links against
Pixar's RenderMan renderer interface to produce high quality
rendered images.  This software is generally significantly
faster than a ray tracer, for example ART.  The software was
developed using Pixar's own Developer's Renderman product, but
in theory it should work with any renderer with a
Renderman-compatible interface.  Contact us if you don't have
the library but are interested in an executable which can
output models in the RenderMan 'RIB' format.  This renderer
and Developer's Renderman should run on any Unix platform.


GETTING THE CODE

   The code is available via anonymous FTP from the machine
ftp.psc.edu.  If you do not already have the PSC's GPlot and DrawCGM
software, you can get that also from the same machine.  (You will need
GPlot/DrawCGM if you are using the Painter renderer, which is the
recommended renderer on machines lacking special 3D graphics
hardware).  To install the software on a Unix system, do the
following:

  - FTP to ftp.psc.edu (internet address 128.182.62.148).

  - Log in as anonymous, with your name as password.

  - cd to the directory pub/p3d (the GPlot software is in pub/gplot).

  - Set file transfer mode to Binary or Image.

  - Get p3d_2_2.tar.Z, (or p3d_2_2.tar if your machine doesn't
    have the 'uncompress' utility).

  - Move the tar file to an otherwise empty directory on your machine.

  - Uncompress the tar file with the command 'uncompress p3d_2_2.tar'.
    If this doesn't work, you should have gotten the uncompressed
    version;  see above.

  - Extract the contents of the tar file with the command 
    'tar -xvf p3d_2_2.tar' .  (On Silicon Graphics machines, you
    will want to use the command 'tar -xvof p3d_2_2.tar'.)

  - Follow the directions in the README file contained in the tar file.

To install the software on a VMS system, do the following:

  - FTP to ftp.psc.edu (internet address 128.182.62.148).

  - Log in as anonymous, with your name as password.

  - cd to the directory pub/p3d (the GPlot software is in pub/gplot).

  - Get tar2vms.c, a freely distributable tool copyrighted by Sid Penstone,
    Dept. of Electrical Engineering, Queen's University, Kingston, Ontario,
    Canada K7L3N6.

  - Set file transfer mode to Binary or Image.

  - Get p3d_2_2.tar, giving it the local name p3d_2_2.tar .

  - Move the tar file and tar2vms.c to an otherwise empty directory on 
    your machine.

  - Compile and link tar2vms.c.  It's a stand-alone program needing no
    libraries except the usual sys$library:vaxcrtl.olb.

  - Give the following commands to unpack the tar file:

      $ assign p3d_2_2.tar tape
      $ tar2vms:== $dev:[directory]tar2vms.exe   
                  (where dev and directory are your current default device
                   and directory).
      $ tar2vms xv

  - Follow the directions in the README file contained within the tar file.


   If you get this software, please send your name and network address
to me at [email protected] so that we can send you announcements of
updates and bug fixes.  If you find bugs, that is also the address to
which to send the bug reports.


-Joel Welling
 Pittsburgh Supercomputing Center
 [email protected]