Ситуация выглядит следующим образом:
Существует удаленный сервер Linux (без графического интерфейса), который создает сцену OpenGL.
Задача: перенести сгенерированные изображения на клиентский компьютер с Windows.
Я не могу понять кое-что с рендерингом за кадром, прочитал много литературы, но до сих пор не совсем понял:
Использование GLUT подразумевает установку переменной DISPLAY. Если я правильно понимаю, значит удаленный рендеринг через x11. Если я запускаю сервер x11 на машине с windows (XWin server), все работает. Если я пытаюсь запустить без сервера рендеринга, то: freeglut (. / WFWorkspace): не удалось открыть отображение «localhost: 11.0». В любом случае х11 не подходит.
Нужно ли создавать графический контекст (требуется поддержка аппаратного рендеринга)?
Как я могу создать графический контекст на сервере Linux без GLUT / x11?
Объект Framebuffer — подходит ли он для моей задачи и нужен ли ему графический контекст?
Что является наиболее эффективным способом решения этой проблемы (рендеринг требует аппаратной поддержки).
Не важная проблема, но тем не менее:
Вам нужно изменить свою программу для использования OSMesa — это драйвер «нулевого дисплея», используемый Mesa для рендеринга программного обеспечения. Рассмотрите этот ответ для почти повторяющегося вопроса как стартер:
https://stackoverflow.com/a/8442800/2702398
Для полного примера вы можете проверить примеры в самом дистрибутиве Mesa, например: http://cgit.freedesktop.org/mesa/demos/tree/src/osdemos/osdemo.c
Обновить
Похоже, что VirtualGL (http://www.virtualgl.org) поддерживает удаленную визуализацию протокола OpenGL / GLX и предоставляет отрисованные растровые изображения клиенту через VNC (после чего заголовок VNC может быть тривиально сделан виртуальным).
Если вы хотите использовать полную спецификацию OpenGL, используйте X11 для создания контекста. Вот учебник, показывающий, как вы можете это сделать:
http://arrayfire.com/remote-off-screen-rendering-with-opengl/