OpenGL四缓冲立体声不显示两个缓冲区

时间:2014-08-25 10:31:43

标签: c++ opengl glut stereo-3d stereoscopy

当我的应用程序使用四路缓冲立体声时,我的视频卡支持四路缓冲立体声(Quadro 5000 / PCIe / SSE2),屏幕上只显示一个缓冲区,我使用过滤和带有vbos阵列的openGL,我是以这种方式初始化过剩:

    int type = GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH | GLUT_STEREO;
    glutInitDisplayMode(type);
    glutInitWindowSize(width,height);

    win = glutCreateWindow(title.c_str());
    glutSetWindow(win);     
    GLenum err = glewInit();
    if (GLEW_OK != err) {
        fprintf(stderr,"  ## ERROR: %d: %s\n",
            (int)err,(char*)gluErrorString(err));       
    }
    glutDisplayFunc(loop_function);

在这里绘制时我是如何填充两个缓冲区的:

        glDrawBuffer(GL_BACK_LEFT);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    camera->OnMouseMotion(sf::Vector2i(-100,0));
    camera->look();
    for (auto i = objects->cbegin(); i != objects->cend(); ++i)
        (*i)->draw(camera);
    glDrawBuffer(GL_BACK_RIGHT);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    camera->OnMouseMotion(sf::Vector2i(200,0));
    camera->look();
    for (auto i = objects->cbegin(); i != objects->cend(); ++i)
        (*i)->draw(camera);
    camera->OnMouseMotion(sf::Vector2i(-100,0));
    camera->look();

    glutSwapBuffers();

双眼只显示正确的缓冲区(最后一个缓冲区)。我尝试先绘制正确的缓冲区,然后显示为空白(没有绘制) OnMouseMotion确实根据位置移动鼠标,我知道我的动作设置不正确,但现在我专注于显示两个不同的图像,一个用于右眼,另一个用于另一个。 我有什么遗忘在这里吗?或者也许gl不是吗?

0 个答案:

没有答案