Stereoscopic OpenGL Tutorial

Output of an application with stereoscopic futures could be seen in true 3D by the help of several types of LCD glasses or 3D displays. I have demonstrated conversion of  standard OpenGl application to an stereoscopic one on several examples. The example codes contain source code in Visual C++ 5 for both original application, HW page flipped and interlaced version. The GLUT lib is used for compilation and the source could be therefore recompiled for any platform like SGI, Linux ....

An OpenGL application with stereo capabilities must do following things:

1) Set the geometry for the view from left human eye
2) Set the left eye rendering buffers
3) Render the left eye image
4) Clear Z-buffer (if the same Z-buffer for left and right image is used)
5) Set the geometry for the view from right human eye
6) Set the right eye rendering buffers
7) Render the right eye image
8) Swap buffers

Two techniques are demonstrated in the examples  :

1) True stereoscopic quad buffering. This future must be implemented in the graphic card drivers.

Examples of supported graphic cards: nVidia Quadro, ATI Fire GL, Oxygen GVX 1, ELSA Gloria XL , see for details.  The proper drivers usually exist for w2k, XP or NT 4 only.

Examples of supported LCD glasses: eDimensional, Elsa Relevator, NuVision 60 GX, any glasses witch can sync. to monitor signal - H3D, Eye3D, VrJoy, ASUS glasses ... Z-screen based 3D monitors works as well.

2) Creating stereoscopic interlaced image based on mask in stencil buffer. This technique could be used on any graphic cards. LCD glasses with line blanking controller or graphic card working in interlaced mode is necessary for stereoscopic visualization of the result. This technique sometimes fails on Nvida graphic cards from unknown reason.

Examples of supported LCD glasses with line blanking hardware: VrJoy, H3D, Iart Eye3D, Tetratel

Picture Description Download link
The most simple application. It shows red picture for left eye and blue picture for right eye. stereo_simple
An sample stereoscopic application from GLUT distribution. The original code demonstrate stereoscopic visualization via red blue lighting technique. red blue
Demonstration of porting an stereoscopic application from SGI platform to PC. plane
3D fractal in stereo. An sample application from the GLUT distribution. ipers
Particle system and billboard technique stereoscopic application. Based on sample from GLUT distribution  again. fire

Useful links:

Direct download of GLUT37. This lib is necessary for the samples work and recompiling.

My oven pages dedicated to stereoscopic visualization and 3D video.

OpenGL main page. - detail description of several stereoscopic visualization techniques. - source of detail description of the proper stereoscopic geometry and more OpenGL based examples.

If you have some comments or suggestions let me know on  

  cesky   english