在我的应用程序中使用四缓冲立体声时,我的视频卡确实支持四缓冲立体声(Quadro 5000/PCIe/SSE2),屏幕上只显示一个缓冲区,我正在使用 glut 和 openGL 与 vbos 数组,我正在初始化 glut方法 :
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 调用不正确?