Stereo Display

Hi, everyone, I’m assigned to make a stereo 3D display in OpenGL. I’m using Wildcat VP560 and I have a HMD that supports page flipping. I’m a starter and would like to know how to setup and make programs that can achieve the stereo effects. For example, how to make the 3D model looks slightly different in left eye and right eye (switch alternatively between left and right frame by frame). Is there any other better approach built-in in OpenGL? If there is tutorials related to this, please kindly let me know.
Thank you guys.

If you’re just starting out, definitely take a look at the OpenGL Programming Guide (Red Book), especially Chapter 3 Viewing.

There is built-in stereoscopic support. See Chapter 10 The Framebuffer. In addition to front and back buffers for double-buffering, there are left and right buffers for stereoscopic rendering.

Here’s a link to an old version of the red book:
OpenGL Programming Guide

Thanks for replying. The link u provide will be helpful for starting. But other than that, is there any more resources?

Here is an example of using left and right buffers to accomplish stereo 3D effects.

Back Left / Back Right Buffer Example

Colby

Yo! thx for the quick response. U guys r so helpful!

Do you have more left-right buffering sources (tutorials)? To me, that’s the most interesting topic, since I’m using HMD (with page flipping functionality). I’m not sure what that will mean, but I assume that the HMD can display on left and right screen frame by frame, meaning that the left right eyes of HMD are displaying slightly different scene generated by OpenGL in order to acchieve the stereo display. Therefore, the left-right buffering is the one I’m most interested in. By the way, what is the difference between left-right buffering and front-behind buffering (built-in in OpenGL?). I think the second one is for other display device instead of HMD right?
Thanks.

I have seen other examples when I searched for stereo 3D in openGL but I don’t have the links. The other sites used this same method as the previous link. I haven’t done anything with that method since I realized it was only for high end cards like the Quadro though (I’m stuck using NVidia’s stereo driver + eDimensional shutter glasses).

Colby

just read the docs.
http://pyopengl.sourceforge.net/documentation/manual/glDrawBuffer.3G.xml

Front/back is for double buffering. So it is compulsory for most uses.

left/right is used in combination with front/back :
You will draw on GL_BACK_LEFT and GL_BACK_RIGHT, then swap.

Have a look at the Rollercoaster 2000 source code, I think they have GL stereo support :
http://plusplus.free.fr/rollercoaster/download.html

Hi, thx for answering. I would like to know, when u do draw(back_left_buffer) and draw(back_right_buffer), are you actually telling the video card to seperate the images into different screens. For example, if I have a HMD supporting page flipping, and I call draw back_left_buffer, then, the programs give demand to video card and video card sees left-buffer, and then display the related image on the output device (left eye of the HMD, in this case) and when it sees right-buffer for the next frame, it outputs related image to the right eye of the HMD?
Thank you.

Just run one of the examples listed above, see the result, and report it here please.

It is not like everybody on this board have such a card and such an HMD.