При использовании в моем приложении стерео с четырьмя буферами моя видеокарта поддерживает стерео с четырьмя буферами (Quadro 5000 / PCIe / SSE2), на экране отображается только один буфер, я использую glut и openGL с массивами vbos, я инициализирую это путь :
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 не верны?
Задача ещё не решена.