

This is xpgs 2.5 - a suite of programs to design, generate and animate
Single-Image Random Dots Stereograms (SIRDS) for the X Window System, and
output Single-Image Stereograms (SIS) or autostereograms in a variety of
formats.

There have been a deluge of dotty poster on sale in your high street shops
(or shopping malls). This is a 'freeware' distribution that produces such
images and is written to run using X11R6/5/4 (or even X11R3) graphics on any
computer with an ANSI C compiler and Xlib.

Below is a history of the current and previous versions of this package.

xpgs-2.5 (16/11/94)
========
The main innovation is a new SIRDS algorithm which has correct geometric
perspective (that is, in both the horizontal and vertical directions)
unlike other published ones such as Thimbleby et al's. The new method
requires two z-buffers but memory requirements have been reduced (at the
loss of some speed via repetition of certain routines).

Other significant improvements include a revamp of the scene setter (almost
like a wireframe modeller) and colour smoothing in making SIS.

The xss format is different from the one defined in xpgs-2.0b. Xss can read
the old xss files but writes out the new type only. You can easily tell
which type xss files are by reading the first line.

The routines in polyh.c now support an environment variable or (logical in
VMS speak) XPGS_DIR to contain the directory to find polyh files. If a polyh
file referred to either on the command line or in an xss file can't be found
in the current directory then the loading routine will look in the directory
pointed to by XPGS_DIR.

Builtins can be loaded in xss. These include the presets
   triangle, square, box, cylinder, cone, torus, sphere & spring
and the primitives
   polygon(), pyramid(), prism() & spiral()
which need parameters.

Raw pgm and ppm files are now supported. PGS files are scraped because they
were too limiting.

xss:
   Changed the interface. Two projection schemes - third angle and
   perspective. Mouse support includes click and drag on control panel
   especially with the cursor pad (the small window with the squares in it)
   where circles appear to help indicate the magnitude of the applied
   transformation - such as rotation. The THIRD mouse button (usually the
   right one) and the shift keys increases effects fivefold.

   There are dialogue boxes which appear for file operations. These support
   arrow keys and emacs type editing keys and the mouse can be used to move
   the cursor.

   To speed up drawing there is a bounding box toggle to draw only the
   bounding box of the current object.

sisgen:
   This is the equivalent of pgs2ppm but allows both xss and p?m files
   for input, the numerous options include different smoothing and tiling
   methods for SIS generation.

   Also does SIRDS with three different colouring options for b&w,
   grey-scale and colour random tiles.

mkpolyh:
   A program for you to change to make polygonal nets of functions
   z = f(x,y).

xpgs:
   A little friendly than the old version. Not much changed on the surface.

cvtoppm:
   Equivalent of cvtopgs, but we are using p?m depth maps now.
   Does polyh, xss and rle to p?m conversions.

Actually the standard free paint packages such as XPaint are not very useful
for editing continuous colour images. There is room for someone to write
some free tools to do gradient fills, colour filters, colour washes, shade
manipulations and other things handy for changing depth maps.

vpgs:
   Inputs p?m depth maps now.

cvtopolyh:
   More or less unchanged.


xpgs-2.0 (14/2/94)
========
Changes since last version (1.8):

xpgs - A new density option for random dots. Multiple objects can
       used to make a SIRDS using the xss format (more on this later).
       A compile-time option to use XImages instead of Pixmaps to
       animate SIRDS.

vpgs - No major changes apart from the density option.

cvtopolyh - Renamed from 3dtopolyh, debugged a little.
       Now includes a check for redundant vertex points.

xss -  A new program. It is an interactive scene setter which lets you
       manipulate 3D objects for use in xpgs. It also defines the
       axis that xpgs rotates objects about. The resultant scene can be
       saved in a xss file.

pgs2ppm - Another new program to let you create colour SISs using
       data saved in the pgs format from xpgs. On Unix machines,
       it allows the result to be piped to xv for viewing, converting
       and saving.

cvtopgs - The final new utility which lets you convert pgs files to/from 
       pgm files (the portable bitmap formats). Resizing either kind
       of files is permissible too.

Overall, there is more flexibility. Image outputs are configurable in
size. Both PS and pgs outputs can depict scenes as large as memory permits.
The Postscript output can also be in grey scale with specified density.
The SIRDS algorithm has been tweaked again to run faster on "lower" machines,
there is a compile-time option to choose whether you use the old or new
hidden surface algorithms.


xpgs-1.8 (26/11/93 & 22/12/93)
========
This suite of programs is an updated version of xps with various
improvements and changes:

* The new name xpgs is to avoid confusion with an ancient program
 called xps.

* Faster filling algorithm for z buffer.

* The aforementioned compressed save.

* A new viewer program (vpgs) to look at saved frames or RLE files.

* An implementation of the algorithm given by Thimbleby, Inglis & Witten
 in their paper "Displaying 3D Images: Algorithms for SIRDS" (see also
 a recent issue of the New Scientist).
 An improvement is made on their routine with a proper hidden surface
 removal routine.

* A SHIMMER mode to aid newbies at viewing SIRDS.

* A utility (3dtopolyh) to convert various 3D formats.


xps-1.0 (15/7/93)
=======

xps - a program to generate and output SIRDS of objects
      defined by polygon faces, the display is an X windows.

      It animates the object rotating about a randomly-
      chosen axis by making and storing frames of pixmaps.
      Any frame can be save in either XBitMap or PostScript
      format.
 

Distribution
============
This suite of programs will be put onto alt.sources in a shar'd form.

You can get it by anon ftp from:

 ftp://katz.anu.edu.au/pub/stereograms/programs/X (150.203.7.91)
   main SIRDS archive
 ftp://hpux.csc.liv.ac.uk/hpux9/X11R5/Graphics (138.253.42.172)
   HP-UX archive and its mirrors:
     hpux.ask.uni-karlsruhe.de (129.13.200.57)
     hpux.cae.wisc.edu         (144.92.4.62)
     hpux.cict.fr              (192.70.79.53)
     hpux.ced.tudelft.nl       (130.161.140.100)
and
 ftp://avalon.vislab.navy.mil/pub/utils/xpgs (129.131.31.225)
   main repository of 3D objects, associated programs and information

Further information and resources:
==================================

  The main SIRDS archive is katz (address above), this holds lots of
  pictures, programs, the alt.3d SIRDS FAQ and a paper on SIRDS.

  Also, with popularity of the WWW, there are now many SIRDS web pages. The
  pages maintained by the author are at
     http://h2.ph.man.ac.uk/gareth/sirds.html
  which holds a copy of the FAQ, a gallery of SIRDS and SIS produced using
  programs written by Gareth Richards (responsible for SIRDSAni for PCs) and
  me (xpgs), a short article on autostereograms (including an explanation of
  the algorithms for making SIRDS) and many links to other SIRDS pages
  throughout the world.


IMPORTANT NOTICE
================
  I would like to thank Max Calvani for being a guinea pig and testing this
  release (2.5) of xpgs. Also thanks goes to Luke Hutchison for his
  suggestions and new ideas on SIRDS algorithms.

  Any feedback, reactions, suggestions, hacks, contributions, constructive
  criticisms, donations of large amounts of money, etc. would be most
  welcomed.

  Send your responses to

  Peter Chang - peterc@a3.ph.man.ac.uk

