
* OpenGL IsoAxis(tm) 1.0 (c) SPDsoft, Dec 2003
---------------------------------------------------------------------------

    This is an implementation of IsoAxis using OpenGL/GLUT. It has been
    tested on:

        IRIX 6.5        cc
        IRIX 6.2        cc
        Windows 2000    vc++
        MacOS X 10.2    gcc
        MacOS 9         cw 5
        Linux 2.4       gcc
        Solaris         gcc
        Solaris         cc
        Tru64           cc
        HP-UX           cc

    and should be easy to compile it on any platform which can run GLUT
    code.

    For a description of what an IsoAxis is, you can read
    <http://persephone.cps.unizar.es/~spd/isoaxis/>

    It's in spanish language, I hope I'll find time to tranlate it soon...



* Usage:
---------------------------------------------------------------------------

    This is a terminal program, for some features you need to open an
    xterm/terminal/command window and run it with arguments or as part
    of a pipe; but for just seeing it moving, you can just launch it
    without any argument.


usage: isoaxis [option] [files]

options:

-6:    stereo (CAVE)

    Render 6 views, for using it on a CAVE system.
    For using it you will need also some aditional options.

    Example:

    W=320
    H=240
    isoaxis -6 -F 0 -W `expr $W \* 3` -H `expr $H \* 2`

    Disposition (Eye/Wall):

        L/L   C/L   R/L
        L/R   C/R   R/R

-3:    stereo (OpenGL)

    For using with stereo capable displays, i.e. Cristal Eyes or similar.

-2:    stereo (two screens)

    For stereo using a dual display with to video outputs.

-A:    stereo (anaglyph)

    For stereo using a single display with coloured glasses.

-B:    full screen.

    Full screen rendering.

-W #:  screen W

    Window width.

-H #:  screen H

    Window height.

-F #:  fov degrees (vertical)

    Vertical Field of View.
    If using '-6', setting this to 0 causes fov to be calculated on runtime.

-x #:  screen size divisor, default 1 (576x768)

    Divide WxH by this amount.

-l $:  Alternate log file (default to stdout)

    When 's' is pressed, write camera positions to this file.

-f $:  camera positions file (- = stdin)

    Read camera positions from this file.

-o $:  image name (foto.%0.3d.jpg)

    When saving images, save using this file name. It should include
    a "C printf %d" part.

-n:    Step on, <space> to step, useful with f option

    When using -f, make a pause after each frame.

-r:    Record to disk

    Automatically save every frame to disk.

-e $:  exec cmd after recording

    Execute some command after every frame written to disk.

-q #:  JPEG - quality (default 75)

    JPEG quality.

-b:    quit after camera file eof.

    When using -f, exit when the camera file ends.

-R:    AutoSpin (default off)

    AutoSpin mode.

-h:    This text
-V:    Print version

Keys:
       '<space>' Next step (if using -n)
       '<scape>' Quit
       'a'       Write image to disk
       's'       Write camera to logfile
       'z'       Incresase delta in 0.07
       'x'       Decrease delta in 0.07
       'h'       Double eye distance in stereo mode
       'l'       Half eye distance in stereo mode
       'k'       Incresase camera distance in 64/20 units
       'j'       Decrease camera distance in 64/20 units


    Examples:

        - View at low resolution and capture camera positions to cameras.txt:

        isoaxis -x 2 -l cameras.txt

        - Create a sequence of frames from the previous cameras.txt file:

        isoaxis -f cameras.txt -r -q 80 -b

        - Use a smaller display as remote control for the main program:

        isoaxis -x 4 | isoaxis -f -



* Installation:
---------------------------------------------------------------------------

    - COMPILING FROM SOURCES

    For unix like systems, you just need to set environment variable
    LOC_ARCH and type "make".

    MacOS X:     darwin
    IRIX 6.x:    irix6
    Linux:       linux
    Solaris gcc: solgcc
    Solaris cc:  solcc
    Tru64 5.x:   tru64
    HP-UX 11:    hpux

    If your sistem is not listed there, probably you could use "linux".
    If not, copy porting/cf_linux.make to porting/cf_custom.make and
    customize it.

    For windows, there is isoaxis.[dsp|dsw] project for Visual C++.
    The "windows" directory include a binay GLUT dll (just in case
    you don't have it installed on your system). The isoaxis.exe
    application will be created there.
    "write image" feature is not available by now on this platform.

    For MacOS 9 and earlier, you will need to install OpenGl SDK
    from Apple and jpeg lib from sources. Then, you will have to
    unpack and use the included IsoAxis.bin Code Warrior project.
    NOTE: By now, the "write image" feature doesn't work in MacOS 9.

    Some features may be unavailable in systems where command line
    options are not supported.


    - BINARY DISTRIBUTIONS

    Unpack and run "isoaxis".
    You may need dynamic GLUT and jpeg libraries.


* Credits:
---------------------------------------------------------------------------

- Isoaxis and graphics code: (c) SPDsoft 2003.  <MacSPD@ivo.cps.unizar.es>
- GLUT stereo support from Mike Blackwell. See fullscreen_stereo.c
- getopt implementation (used for windows) based upon minix code.
- GLUT main code based on code from Jeff Molofee and Lakmal Gunasekara
- libjpeg 6, (c) Independent JPEG Group's free JPEG software
- GLUT for Win32 from http://www.pobox.com/~nate/glut.html




