Я хочу создать фреймворк для автоматических рендеринговых тестов для видеоигр.Принудительное приложение OpenGL для рендеринга на экране на безголовой машине
Я хочу протестировать приложение, которое обычно отображается в окне с OpenGL. Вместо этого я хочу, чтобы он отображался в файлах изображений для дальнейшей оценки. Я хочу сделать это на сервере Linux без GPU.
Как я могу сделать это с минимальным воздействием на оцениваемое приложение?
Некоторые замечания для ясности:
- версия OpenGL является 2,1, так что программное обеспечение визуализации с Mesa должно быть возможным.
- Предпочтительно, я не хочу изменять какой-либо код приложения. Если есть решение, которое позволяет мне эмулировать сервер X или что-то в этом роде, я бы предпочел это.
- Я не хочу менять какой-либо код рендеринга. Если это действительно необходимо, я могу изменить способ инициализации OpenGL, но после этого хочу выполнить произвольный код OpenGL.
В идеале ваш ответ объясняет, как настроить среду на безголовом Linux-сервере, что позволяет запускать произвольные двоичные файлы OpenGL и выводить их на изображения. Если это невозможно, я открыт для любых предложений.
Я делаю эту точную вещь как часть определенного типа автоматизированного тестирования на стороне сервера, которое подчеркивает сохранение/улучшение визуальных качеств (требует обзора человека). Я не уверен, что это самый прямой/прямой подход, но я делаю это, предоставляя внеэкранные FBOs, а затем захватывая полученные текстурные пиксели текстуры через 'glGetTexImage'. Остальное - стандартный ввод-вывод. –
Работает ли ваше решение на машине без GPU? Если да, как вы это настроите? –
Я делаю именно то, о чем вы говорите ... Единственная разница в том, что я использую GPU. Я никогда не пытался с MESA. Помимо этой детали, я могу помочь вам со всем остальным. –