We are trying to update our software to add 3D compatibility with Nvidia 3D Vision 2 glasses. I’m testing it with an Nvidia GeForce GTX 960 and a compatible ASUS screen. I was able to see other sample applications in 3D using the Nvidia 3D glasses.
I’m trying to use Qt with OpenGL without success.
I’m not sure what I’m doing wrong but the 3D option never gets activated.
Do we need a specific API to activate the 3D option using OpenGL?
Does it have to be full screen?
The Stereo button light never becomes available.
We use the GL_BACK_LEFT and GL_BACK_RIGHT buffers and GL_STEREO active. See sample code attached.
We only see the right buffer (last buffer) drawn.
I believe we should not use swapBuffers() after every draw (left and right) call then we see the 2 stereo images drawn on the same 2D screen.
I do not see specific 3D options in the Nvidia control panel. See image attached.
Thank you,
int nScreens = 1;
const GLenum DrawBufferNormal[1] = {GL_BACK};
const GLenum DrawBufferStereo[2] = {GL_BACK_LEFT, GL_BACK_RIGHT};
bool do_stereo = false;
if (GLOBAL.StereoView3D > 0){
GLboolean has_stereo;
glGetBooleanv(GL_STEREO, &has_stereo);
//StereoSupported = has_stereo;
if (has_stereo){
do_stereo = true;
}
qDebug()<<"Stereo vision supported: " << (has_stereo ? "YES" : "NO");
}
if (do_stereo){
// Draw Stereo
nScreens = 2;
pDrawBuffer = DrawBufferStereo;
pViewPoint = ViewPoint_Stereo;
pPerspective = Perspective_Stereo;
} else {
// Draw normal
pDrawBuffer = DrawBufferNormal;
pViewPoint = &View_Point;
pPerspective = &Perspective;
}
for (int i=0; i<nScreens; i++){
glDrawBuffer(pDrawBuffer[i]);
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
USE_VIEW_POINT_PERSPECTIVE(pViewPoint[i], pPerspective[i]);
...draw scene...
//glFlush(); // not required
}
//swapBuffers(); // not required