GerhardKauer's picture

3D Monitor support

Hi there,

as I could not believe, that there are NO answers for following question, I post this topic again with a different subject:

Do you know how to display a left and a right image using OpenTK with such a 3D monitor. I read something concerning "quad-buffering", but I did not really understood how to come into that programming technique.

Are there some source-code snippets available, from which I could start from?

Thanks a lot for reading this and for your help

Happy OpenTk'ing



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
the Fiddler's picture

Here is how quad-buffer stereo works: first you enable it by setting the 'stereo' parameter of your OpenTK.GraphicsMode to true, i.e.

var mode = new GraphicsMode(32, 24, 8, 0, ..., true);
var game = new GameWindow(..., mode, ...);

Afterwards, all you need to do is render your scene twice before calling SwapBuffers: once from the point of view of the left eye and once from the right eye. You use GL.DrawBuffers to switch between the left and right buffers. You can find several tutorials covering the necessary math on the net.

There is a caveat, however: quad-buffer stereo is only support by expensive professional graphics cards: Ati FireGL/FirePro series and Nvidia Quadro series. Unless things have changed significantly in the last 2 years, regular consumer cards do not expose this functionality.

To the best of my knowledge, these so-called '3d' monitors are identical to regular monitors in all ways but one: like the CRTs of old, they run at 120Hz instead (60Hz for each eye) rather than the more common 60Hz. Shutter glasses filter the signal so each eye receives the correct image (this is called an 'active' system, in contrast to 'passive' systems which use two sources of light and a set of cheap polarized glasses to filter the signal).