3D-Stereoscopic X Windows
Scott A. Safier
M. W. Siegel
The Robotics Institute, Carnegie Mellon University
个性签名情侣Pittsburgh PA 15213
ABSTRACT
All known technologies for displaying 3D-stereoscopic images are more or less incompatible with the X Window System. Applications that ek to be portable must support the 3D-display paradigms of multiple hardware implementations of 3D-stereoscopy. We have succeeded in modifying the functionality of X to construct generic tools for displaying 3D-stereoscopic imagery. Our approach allows for experimentation with visualization tools and techniques for interacting with the synthetic worlds. Our methodology inherits the extensibility and portability of X. We have demonstrated its applicability in two display hardware paradigms that are specifically discusd.
Keywords: Stereoscopic displays, X Window System, computer graphics
1. INTRODUCTION
The X Window System (X) has become an industry standard adopted by many workstation vendors. Technologies have become available for realistic 3D-stereoscopic (binocular) viewing of video and computer-generated imagery. Developers of applications who want to u 3D-stereoscopic displays must confront merging the technologies with X.
X provides tools for managing windows that are assumed to have two dimensions; it does not take into account the possibility of a three-dimensional screen. Windows cannot be positioned at a depth, nor can the attributes of a 3D world be specified. Additionally, all the graphical ur-interface tools for X, such as Motif, inherit X's two-dimensional world.华硕主板怎么进入u盘启动
There are a variety of viable technologies ud for displaying 3D-stereoscopic images but they are generally more or less incompatible with X. Stereographics' technology requires the left and right fields of the image to be stacked vertically about the center of the screen, and inrts an extra vertical sync-pul; it is aesthetically desirable to make other 2D X windows invisible when using this technology. Toshiba™ has a system that interlaces the left and right fields of a 3D-stereoscopic image. Liquid crystal displays offer the possibility of subpixel polarization to encode the left and right
fields of 3D-stereoscopic images. Applications that are intended to be portable must support the paradigms of the hardware platforms and others.
Our software is implemented on a Silicon Graphics workstation that is stereo-ready. We are using two different display techniques in our work. SGI's hardware implements Stereographics' mode and provides SGI compatible hardware to drive Stereographics Crystal Eyes goggles. We are also using the machine's double buffering capability to drive the stereo-in-a-window technique described in [1]. Toshiba goggles are gated by the hardware's parallel port and are synchronized with the buffer swapping of the images.
We have been working on using the existing functionality of X to construct generic tools for displaying 3D-stereoscopic imagery. Our approach allows for experimentation with visualization techniques and techniques for interacting with synthetic worlds. The implementations of the generic tools necessarily need to differ betweem the hardware modes ud to display the 3D-stereoscopic scenes, but this effect is minimized through a uniform application interface.
夜冷风
We have begun to explore what augmentation the X Window Systems needs to support 3D-stereoscopic displays. We take the position that 3D-stereoscopy is an attribute of a window, just as c
olor, perspective drawing or having a border is an attribute of a window. Although 3D-ness is not a native characteristic of X windows, we are pushing existing technology to understand the problems associated with building 3D-stereoscopic software applications. Our first step in this exploration us the X Toolkit Intrinsics package (Xt) to create a ur-interface component (widget) for a 3D-stereoscopic window. Xt us an event-driven paradigm, where programmed actions occur in respon to particular input from a ur or specific conditions that occur in an application. Toolkits such as Motif and Open Look™ are built on top of Xt.
We have designed a two-tiered hierarchy of widgets that permit rendering and interacting with 3D synthetic worlds within an X and Motif environment. First, we construct a widget for the particular hardware platform. This is augmented with a binocular viewing system that renders geometrically correct 3D-stereo scenes. The are described in detail in the rest of this paper, along with veral applications that they are ud in.
Some hardware modes for displaying 3D-stereoscopic scenes have the problem that 2D and 3D windows cannot comfortably co-exist on the same screen. They require that a cond type of widget be designed for the 3D-stereoscopic displays. This widget, known as a geometry-manager widget, would automatically position normally 2D windows correctly within a 3D-stereoscop
ic display, allowing applications to u existing toolkits, like Motif. We have only begun to explore the issues associated with this cond step.
Ultimately, we believe that future window systems must consider the requirements of 3D-stereoscopic applications from their inception; but the requirements are yet to be fully articulated and understood. When they are, protocols for efficiently transmitting graphical data to 3D-stereoscopic displays can be developed. As the u of 3D-stereoscopic displays becomes more common, ur-interface toolkits can be developed for commonly ud interaction paradigms analogous to menus and push-buttons for 2D-displays
2. IMPLEMENTING A 3D-STEREOSCOPIC GRAPHICS TOOL
2.1 The Stereo Window Widget
The widget most cloly linked to each particular hardware mode is the corresponding stereo window widget instantiation. It creates an X/Motif window that has both a left and a right field. An application defined function generates either the left or the right image whenever an event to redisplay the contents of the window is procesd. Application program interfaces to this widget are generic and are as independent as possible of the display hardware. An application can support mult
iple hardware modes simply by compiling it in each ca with the appropriate hardware-specific library.
As we guesd, there are some general incompatibilities between X and 3D-stereoscopic displays. The first problem we encountered was the pointer1 provided by X. This 2D pointer is incompatible with 3D-stereoscopic viewing becau it appears in only one field. There has been much rearch on pointers and their interaction with 3D synthetic worlds [2,3], but all concrete results are application specific. We did not try to solve all the problems associated with designing an application independent 3D cursor either. Instead, we create a shadow pointer that tracks the motion of the real pointer in both fields of the stereo window. We create veral subroutines that permit the application to control the pointer, including one that computes a disparity for the shadow pointer to give it depth.
1 The term pointer comes from the X literature and refers to the cursor on the screen.
2.1.1 Stereographics
Stereographics Inc. provides a technology for viewing 3D stereoscopic images that requires they be displayed on the screen simultaneously by stacking them vertically. SGI's hardware implements Ster
eographics' mode by inrting an extra vertical sync-pul; this has the effect of doubling the image height but halving the number of vertical lines each eye es. For images to have the appropriate aspect ratio they must be anamorphically doubled horizontally by the program that generates the graphic. Stereographics provides SGI compatible hardware to drive LCD goggles that are synchronized with the toggling of the images on the screen.
A 3D-stereoscopic application that us Stereographics hardware must consider this display technology when designing its graphical ur interface. The 2D windows become distractions when the screen is split becau they are stretched and appear in only one of the viewer's eyes. When using this hardware mode, it is thus desirable to hide all the other windows not associated with the 3D-stereoscopic application. The easy way to accomplish this is for the application to take over the full screen.
The stereo window widget for this hardware mode creates two subwindows of a designated size. The subwindows are aligned in each field to appear at a given position on the screen. The subwindows are linked so that they behave as a single widget within the ur interface.
Creating the stereo window pairs is only part of the solution for this hardware mode. Like X , widgets 中国最大的盆地
from toolkits such as Motif or Open Look™ were designed for a 2D display. If an application us widgets from other toolkits, such as Motif, the widgets must be positioned with care. Some widgets, like tho that implement push buttons, can be duplicated to appear properly in both the left and right fields of the display; others can't be implemented properly in this paradigm: they can be en flat in the right eye, or the left eye, but not in both. There may also be application-level problems associated with this hardware mode. Consider for example a program that displays precomputed binocular images. This application may u scrollbars to control the horizontal and vertical disparity. This behavior would be simple in a 2D application using Motif's scrolled window widget, but is difficult in a stereo application becau there is no corresponding 3D scrolled window widget. Our implementation of the stereo window widget for the Stereographics hardware mode tries to facilitate this type of interaction by linking the enclosing widget to the stereo window widget. Although window positioning is automated, synchronizing the behavior of the left and right fields of the enclosing widget is left to the application. For example, the application that displays precomputed stereo pairs must t the position of the left field's scroll bars bad upon the position of the scroll bars in the right field.
2.1.2 Stereo-in-a-window
Stereo-in-a-window is a display technique that we developed to u double buffering to display 3D-stereoscopic images on the same screen as 2D X windows. Display of the left and right image fields are synchronized with a t of liquid crystal goggles through either the rial or parallel port of the host machine. As the goggles are toggled, the image buffers are simultaneously swapped to display the appropriate image.
The implementation of the stereo window widget for this hardware mode must drive the goggles and synchronize them with the field currently being displayed. Optimally, field swapping occurs with each refresh of the monitor. This occurs at 72 Hz on our particular hardware platform. The timing facilities provided by X are ud to generate an event at the specified time to swap the fields. We have found that the size of the window and the complexity of the images being rendered affect the maximum refresh speed, and that a swapping 72 times a cond is ldom achieved on our current hardware. This leads to flicker with large or complex imagery; however, it is in principle easily overcome by upgrading the underlying computer power.
The principle advantage to the stereo-in-a-window technique is that the stereo window can co-exist with other 2D windows, such as tho provided by Motif. Application programs need not take over the full screen to hide other windows, nor must the application duplicate widgets for the right and left 糯米饭团
fields. Likewi, there are no
special requirements for taking advantage of the full range of widgets from other ur-interface toolkits. Thus, this is the preferable mode in all respects except the requirement for a more powerful underlying computer; as computer power becomes ever cheaper, the cost of the computer power eventually becomes a non-issue.
2.1.3 Applications
The stereo window widget provides the basic functionality of a 3D-stereoscopic window for X. We have ud this widget in veral image processing applications. The first application we developed displays precomputed stereo pairs and the ur to adjust the horizontal and vertical disparities. Our cond application is a modification of the above that displays video image quences. This application demonstrates the stereo look around capability described in [4]. The applications demonstrate the feasibility of mixing 3D-stereoscopic windows among 2D X windows.
2.2 Perspective Rendering for 3D Graphic Applications
The stereo window widget encapsulates the necessary functionality to drive a 3D-stereo display and provides applications with a capability to display 3D-stereoscopic images in an X window, but it lacks
any data about the viewer of the images. In [5], we show that it is necessary to know the position of the viewer's eyes relative to the monitor in order to render geometrically correct stereo image-pairs. The correct stereo-image pairs are uniquely associated with the position of the viewer in this binocular viewing system. We have designed and implemented a stereo 3D widget that includes all the functionality of the stereo window widget and extends it to include data about the binocular viewing system. With this widget, applications can render and interact with 3D synthetic worlds.
All measurements in our system are in real units (e.g. millimeters) and we require the synthetic world to be rendered in a right-handed coordinate system. The monitor must also be calibrated so that the exact height and width of the drawable portion of the screen are known.
For simplicity, we make veral restrictive assumptions about the binocular viewing system.
1. The distance between the ur and the monitor is always equal to the distance from the synthetic eyes to the synthetic screen.
2.The ur is assumed to be looking at the center of the screen. Any horizontal or vertical offts are defined from the center of the screen.
3.The line that runs through the midpoint of each eyes is always parallel to the horizontal axis of the display hardware. The line that runs through the midpoint of each synthetic eye is always oriented as the horizontal of the synthetic screen.
美女精油The cond and third assumptions can be eliminated with the u of an instrument that returns both the position and the orientation of the viewer's head. All the commercial head trackers that we know about only provide position information. They do not return information about the orientation of the eyes. For the head trackers, an assumption about the orientation of the eyes relative to the screen must still be made.
Figure 1 graphically depicts the binocular viewing system. The position of the viewer's eyes are located relative to a screen of projection and the form an eye-screen system that is ud to view the synthetic world. Objects in a world cast two central projections upon the screen, one for each eye. The viewer is oriented toward a point in the synthetic world, called the point of gaze. The eye-screen system is positioned in the synthetic world such that there is a one-to-one correspondence with the real world.
We have provided two methods of defining the binocular viewing system in the stereo 3D widget. Bo
养肝汤th require that the distance from the eyes to the screen be known, as well as the orientation of the screen. Both also define a point in the synthetic world known as the point of gaze. The eye-screen system is oriented such that the line between the midpoint of the eyes and the point of gaze intercts the screen. Either the position of the right and left eyes in the synthetic world can be specified exactly, or, in the other ca, the midpoint between the eyes and the pupilary distance can be ud to calculate the positions of each eye.
Several coordinate systems can be ud to describe the binocular viewing system. We made a design decision to reprent the coordinates of elements in our binocular viewing system in the same coordinate system as the synthetic world. This system is the most natural for the application since the coordinate system of the synthetic world is defined by the application. However, this coordinate system is not necessarily the most natural choice for other purpos, such as reasoning about the eye-screen system or computations involving the real world. There is however a unique mapping between each of the coordinate systems that can be computed with little difficulty.
我懂了她Besides the binocular viewing system, the stereo 3D widget provides other functionality to the application. It is possible to scale the synthetic world so that objects appear proportionally larger or smaller. Navigation in the synthetic world occurs by moving the eye-screen system. We provide the
application with veral functions to translate the eye-screen system, or rotate it about the point of gaze or the eye midpoint. Lighting sources in the synthetic world need only be specified once. The stereo 3D widget maintains a lighting data ba that assures that the appropriate model is employed every time the scene is drawn. We are also currently experimenting with synthetic optical systems, such binoculars and stereo microscopes [6]. The optical systems are defined in terms of the focal length of the device, the distance between the principal planes, and the indices of refraction in object and image spaces. Lastly, there is a method of training to help a ur overcome the convergence-accommodation conflict. When the ur is being trained, the disparity is t to zero, and increa linearly with time until it has reached its intended value.
2.2.1 Applications
We have developed veral applications that u there stereo 3D widget inside an X windows graphical ur interface. The applications demonstrate the ability to mix 3D widgets with conventional 2D Motif widgets. Figure 2 demonstrates this capability in a stereo-in-a-window application that displays a geometric model of a statue (window WV). It is surrounded by veral normal 2D X windows that occupy the workstation's desktop including a subwindow of the application that is querying the ur for a scaling factor for the image.