Related Concepts and Terminology
Achieving appropriate horizontal parallax is key to the generation of good stereo pairs. On the other hand, most authors argue that vertical parallax should be avoided, or at least strictly limited as it is typically difficult for viewers to fuse and hold the images together in the presence of vertical parallax. If the left and right images are generated as suggested in these pages, there will be no vertical parallax. One way vertical parallax can be introduced is by employing unique projection planes for the left and right eye as mentioned on an earlier page.
Positive and negative horizontal parallax is implemented as a shear transformation. As we will see when we look at the mathematical details of projections, shear transformations will be included in the left and right eye projection matrices.
An OpenGL NoteThis tutorial presents concepts independent of any graphics API. Nevertheless, given the popularity and widespread use of OpenGL, it is appropriate to discuss how the OpenGL projection interface relates to the concepts we are studying here. OpenGL defines the viewing frustum based on (xmin, xmax, ymin, ymax) eye coordinate limits defined on the projection plane. Furthermore, it defines the projection plane as the one containing the near clipping plane. Hence one would never observe negative parallax when using the standard OpenGL glFrustum or gluPerspective functions. Of course a programmer can generate their own projection matrices to do this, and that is how several of the images on these pages were generated. This requires a detailed understanding of how the internal logical device coordinate system works in OpenGL. We shall return to this later in the context of stereo projections; the reader is also referred to section VII of the previously mentioned technical report on the Mathematics of Graphical Transformations.