Stereo viewing is a common technique to increase visual realism or
enhance user interaction with 3D scenes. Two views of a scene are created,
one for the left eye, one for the right. Some sort of viewing hardware
is used with the display, so each eye only sees the view created for it.
The apparent depth of objects is a function of the difference in their
positions from the left and right eye views. When done properly, objects
appear to have actual depth, especially with respect to each other.
When animating, the left and right back buffers are used, and must be
updated each frame.

OpenGL supports stereo viewing, with left and right versions of the front
and back buffers. In normal, non-stereo viewing, when not using both buffers,
the default buffer is the left one for both front and back buffers. Since OpenGL
is window system independent, there are no interfaces in OpenGL for stereo
glasses, or other stereo viewing devices. This functionality is part of
the OpenGL/Window system interface library; the style of support varies
widely.

In order to render a frame in stereo:

The display must be configured to run in stereo mode.

The left eye view for each frame must be generated in
the left back buffer.

The right eye view for each frame must be generated in the right
back buffer.

The back buffers must be displayed properly, according to the needs
of the stereo viewing hardware.

Computing the left and right eye views is fairly straightforward.
The distance separating the two eyes, called the interocular
distance (IOD), must be determined. Choose this value to give the proper
spacing of the viewer's eyes relative to the scene being viewed.
Whether the scene is microscopic or galaxy-wide is irrelevant. What
matters is the size of the imaginary viewer relative to the objects in
the scene. This distance should be correlated with the degree of
perspective distortion present in the scene to produce a realistic
effect.