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
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
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
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
- 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:
-
katz.anu.edu.au
(150.203.7.91)
- main SIRDS archive
-
hpux.csc.liv.ac.uk
(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
-
avalon.vislab.navy.mil
(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
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: peter.chang at nottingham.ac.uk
Go back to get programs