Stereoscopic Notes

The StereoView Room provides state-of-the-art stereoscopic visualization of 3D models on the seminar screen. This web page contains the following information for development of stereoscopic applications in the StereoView Room:

The following info is reproduced from the stereo man page (type man stereo).

All SGI graphics systems have one or more ports for connecting stereo viewing equipment to enable 3-D stereo presentation of computer graphics imagery. The Stereo port provides power for the external viewing equipment, and provides a Stereo Field sync signal to synchronize the external viewing equipment to the time-multiplexed stereo video.

When the Stereo Sync signal is High, the system is displaying the Right- Eye view; when it is low, the system is displaying the Left-Eye view. External stereo viewing equipment uses this signal to synchronize its time-multiplexing of the video into the viewer's left and right eyes, creating the illusion of a stereoptic presentation of the graphics images. For more information on creating Left-Eye and Right-Eye views, see the article, High Resolution Virtual Reality, by Michael Deering in ACM Computer Graphics, vol. 26, number 2, the 1992 SIGGRAPH proceedings, page 195.

To display stereo images, a stereo-capable software application must be running on a stereo-capable graphics system, to which the appropriate external stereo viewing equipment has been attached. The system must be running a stereo-video format. See xsetmon(1), setmon(1G) and setmonitor(3G) for details on setting the system to stereo video format.

Three different kinds of stereo are supported on SGI equipment. The first two methods use the stereo connection described above to synchronize external viewing equipment, such as the CrystalEyes stereo goggles. The third method is used for head mounted displays.

1. The most common is 1280×492 pixels per left/right field, at 60 field-pairs per second. All Silicon Graphics workstation models support this kind of stereo. This method has been called divided screen or split screen stereo in various documents, because the frame buffer is divided into 2 parts, one for each eye. Stereo applications render the left-eye right-eye view is rendered into the bottom half of the frame buffer using lines 532-1023 (on all systems except O2, which uses lines 512-1003). The application must adjust the transformation matrix to correct for the fact that pixels are not square in this format. There are two variations on split screen stereo. In the first, called old-style stereo, a single application takes over the entire screen and is responsible for all rendering, typically using the older IRIS GL application program interface. This kind of stereo is selected by giving the STR_RECT option to setmon. In the second variation, which uses the SGI Stereo X extension, applications can render stereo into a window on a desktop that includes other windows. The SGI Stereo X extension includes these functions: XSGIStereoQueryExtension, XSGIStereoQueryVersion, XSGIQueryStereoMode, XSGISetStereoMode, and XSGISetStereoBuffer. This kind of stereo is selected by giving the STR_TOP or STR_BOT option to setmon, or by selecting "Top" or "Bottom" when prompted by xsetmon after the user chooses a split-screen stereo timing table. The windowing system is responsible for putting up menus, popups, etc. in both the top and bottom halves of the screen, in order to make stereo-in-a-window work.

2. Another stereo method, Quadbuffer Stereo, dedicates separate frame buffers to each eye, so it uses four buffers when displaying double buffered stereo images. This method renders and displays square pixels, and does not require the windowing system to render its widgets in two places. Stereo applications render the left-eye and right-eye views to the same pixel locations in the screen or window, but select either the left buffer or right buffer when rendering views for the left or right eye, respectively. This method allows several different display resolutions, and has the advantage of allowing the software application to render to a square-pixel space. This results in higher image quality, especially for anti-aliased rendering. This method is typically selected by using setmon or xsetmon to load, for example, the 1024×768_96s timing table.

3. The third way of doing stereo is with the Multi-channel option (MCO), virtual reality helmets, but is beyond the scope of this document. No Stereo Sync is needed for this kind of stereo. The two video channels must be genlocked together. See setmon(1G) and setmonitor(3G) for details on enabling the genlock function.

In some multi-screen stereo applications it is desirable to genlock the stereo screens together. Care must be taken to ensure that right-eye views are locked together. For some older stereo formats, this may require several tries. See setmon(1G) for details on enabling the genlock function.

ELECTRICAL INTERFACE

There are four different types of stereo ports found on various Silicon Graphics systems.

The DIN-8 powered serial port connectors, which are found on the Onyx and Crimson models, provide Stereo Sync in addition to serial communication signals for other types of peripherals. The serial signals are not used by external stereo viewing equipment, but the pin-out description of all signals on the DIN-8 is provided here for completeness.

In order to support peripherals which draw power from the host system, the Challenge and Onyx systems provide two powered-peripheral serial ports. These ports have a DIN-8 connector. These ports share the tty2 and tty3 signal lines with the standard DB-9 connectors; if the DB-9 connector for tty2 is already in use, you cannot use the powered peripheral connector for tty2. Similarly, if tty3's DB-9 connector is connected to a peripheral, the powered peripheral port connected to the tty3 signal lines cannot also be used. The Stereo SYNC signal is brought out in parallel to both ports. The powered peripheral ports have the following pin assignments:

          ___---___
         /    2    \
        / 4       5 \
       ( 1    8    3 )
        \           /
         \ 6     7 /
          ---___---

 _________________________________________
 |Pin | Name | Description                |
 | 1  | DTR  | Data Terminal Ready        |
 | 2  | CTS  | Clear To Send              |
 | 3  | SYNC | Stereo Sync/GND (jumpered) |
 | 4  | RD   | Receive Data               |
 | 5  | TD   | Transmit Data              |
 | 6  | SG   | Signal Ground              |
 | 7  | GND  | Ground point               |
 |_8__|_V10P_|_10V_supply_________________|

The Onyx and Crimson also provide Stereo Sync and Stereo Power as part of the 13W3 RGB video port. Note: the Elan and Indy products do NOT have stereo support in its 13W3 port. This connector has the following pin assignments:
      -------------------------------
      \ A1   1  2  3  4  5   A2  A3 /
       \   6  7  8  9  10          /
        ---------------------------

 ______________________________________________________________
 |Pin | Name       | Description                               |
 |A1  | RED        | Analog Red signal                         |
 |A2  | GRN        | Analog Green signal + optional video sync |
 |A3  | BLU        | Analog Blue signal                        |
 | 1  | N/C        |                                           |
 | 2  | MONTYPE_0  | Monitor ID bit 0                          |
 | 3  | N/C        |                                           |
 | 4  | STEREO     | Stereo Sync signal                        |
 | 6  | MONTYPE_1  | Monitor ID bit 1                          |
 | 7  | MONTYPE_2  | Monitor ID bit 2                          |
 | 8  | GND        |                                           |
 | 9  | GND        |                                           |
 |10__|_GND________|___________________________________________|

Indy, Indigo, Indigo2 (Elan, Extreme, XS, or XZ), and O2 models use a micro-DIN connector for the following Stereo port:
                  __---__
                 /   3   \
                /         \
               / 2       1 \
              (             )
               \     #     /
                \         /
                 ---___---

        ______________________________
        |Pin | Name   | Description   |
        | 1  | PWR    | +12V          |
        | 2  | GND    | Signal Ground |
        |_3__|_STEREO_|_Stereo_Sync___|
Indigo2 and Octane models with IMPACT graphics use a DB9 connector for stereo. This connector has the following pin assignments:
            -------------------
            \  5  4  3  2  1  /
             \   9  8  7  6  /
              ---------------

       ______________________________
       |Pin | Name   | Description   |
       | 1  | STEREO | Stereo Sync   |
       | 6  | GND    | Signal Ground |
       | 7  | GND    | Signal Ground |
       |_8__|_PWR____|_+12V__________|


Applications with "Hardware Stereo" options

InsightII
To start InsightII, type insightII.
To select the hardware stereo mode, select the Session pull-down menu, select the stereo sub-menu, and select the hardware option in this submenu and click on Execute. To select non-stereo mode, go to the stereo sub-menu, make sure that stereo is de-selected, and click on Execute
Cerius2
To start Cerius2, type cerius2.
To select the hardware stereo mode, select the View pull-down, select Graphics..., select Stereo. In the new pop-up menu, select STEREO and CRYSTALEYES. To select non-stereo, type <F4>. <F4> is a toggle between stereo and non-stereo modes. <F5> is a toggle between hardware stereo and "side-by-side" stereo-pair stereo modes.
Sculpt
To start Sculpt on stereo1, type sculpt.
To select the hardware stereo mode, select the View menu and select Stereo. To select non-stereo, select the View menu and select Mono.


Video Formats

To set the current video output format on an SGI workstation, login as root and type the following command:
/usr/gfx/setmon -nv format
where -n specifies that this new format should NOT be saved and used as the default, and -v is the verbose option (e.g., reports error messages). For more information, type man setmon. Note that different workstations will list different info regarding video formats.

The format can be one of the following.

 
stereo1, stereo2, splatter
 (Indigo2 workstations with XZ or Extreme graphics)
 

 
pchem01-06
 (O2 workstations with CRM graphics)
 

 
stereo3
 (Octane with one reality engine)
 

 
     30HZ
     50HZ
     60HZ
     72HZ
     NTSC
     PAL
     IRIS3K
     STR_RECT
     STR_BOT
     STR_TOP
     343
 
     50HZ
     60HZ
     72HZ
     70HZ
     75HZ
     STR_RECT
     STR_BOT
     STR_TOP
     1024x768_60
     1024x768_60p
     1024x768_70
     1024x768_75
     1024x768_96s
     1280x1024_48
     1280x1024_50
     1280x1024_60
     1280x1024_60p
     1280x1024_72
     1280x1024_75
     1280x492_120s
     2@1024x768_60
     2@1024x768_70
     2@1024x768_75
     2@1280x1024_48
     2@1280x1024_50
     2@1280x1024_60
     2@1280x1024_72
     2@1280x1024_75
     640x480_60
     800x600_60
     800x600_72
 
 
     50HZ
     60HZ
     72HZ
     76HZ
     STR_RECT
     STR_BOT
     STR_TOP
     1024×768_60
     1024x768_60_pbuf
     1024x768_60p
     1024x768_72
     1024x768_72_pbuf
     1024x768_76
     1024x768_76_pbuf
     1024x768_96s
     1024x768_96s_vs
     1280x1024_49
     1280x1024_49_32db
     1280x1024_50
     1280x1024_50_2f
     1280x1024_50_2f_32db
     1280x1024_50_32db
     1280x1024_59
     1280x1024_59_32db
     1280x1024_60
     1280x1024_60_2f
     1280x1024_60_2f_32db
     1280x1024_60_32db
     1280x1024_60p
     1280x1024_72
     1280x1024_72_32db
     1280x1024_76
     1280x1024_76_32db
     1280x492_120s
     1280x960_30i
     1600x1200_57
     616x492_140os
     640x486_30i
     768x576_25i
 
   
also allowed is the name (minus the '.vfo' extension) of one of the video format files which reside in /usr/gfx/ucode/CRM/vof. As of 12/08/98, these file names are listed above.
 
 
also allowed is the name (minus the '.vfo' extension) of one of the video format files which reside in /usr/gfx/ucode/MGRAS/vof. As of 12/08/98, these file names are listed above.
 

 

The following "nicknames" can also be used to specify the formats listed above.

 format  nickname(s) 
 30HZ  30hz, 30
 50HZ  50hz, 50
 60HZ  60hz, 60, presenter1280
 70HZ  70hz
 72HZ  72hz, 72
 75HZ  75hz, 75
 76HZ  76hz, 76
 NTSC  ntsc
 PAL  pal
 343  343
 STR_RECT  str_rect, stereo, st492, squareo, sq492 
 STR_BOT  str_bot, sqr_bot
 STR_TOP  str_top, sqr_top
 IRIS3K  iris3k, presenter


Return to MolViz Home
Send comments to chemvis@indiana.edu
Last updated: 02/12/2001