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
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.
|
|
|
|
|
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 |