Как использовать ИЗБЫТОК/OPENGL для рендеринга в файл?

У меня есть программа, которая моделирует физическую систему, которая изменяется со временем. Я хочу, в предопределенных интервалах (говорите каждые 10 секунд), производит визуализацию состояния моделирования в файл. Я хочу сделать это таким способом, которым легко "выключить визуализацию" и не произвести визуализацию вообще.

Я смотрю на OpenGL и ИЗБЫТОК как графические инструменты, чтобы сделать визуализацию. Однако проблема, кажется, что, в первую очередь, это похоже на него только выводы к окну и не может произвести в файл. Во-вторых, для генерации визуализации, которую необходимо назвать GLUTMainLoop, и это останавливает выполнение основной функции - единственные функции, которые вызваны, с тех пор вызовы от GUI. Однако я не хочу, чтобы это было основанным на GUI приложением - я хочу, чтобы оно просто было приложением, которое Вы запускаете из командной строки, и оно генерирует ряд изображений. Существует ли способ сделать это в ИЗБЫТКЕ/OPENGL? Или OpenGL неправильный инструмент для этого полностью, и я должен использовать что-то еще

19
задан Alex319 7 July 2010 в 04:42
поделиться

3 ответа

Вы почти наверняка не хотите GLUT, в любом случае. Ваши требования не соответствуют тому, для чего он предназначен (и даже если ваши требования соответствуют его предполагаемому назначению, вы все равно этого не хотите).

Вы можете использовать OpenGL. Чтобы сгенерировать вывод в файл, вы в основном настраиваете OpenGL для рендеринга в текстуру, а затем считываете полученную текстуру в основную память и сохраняете ее в файл. По крайней мере, в некоторых системах (например, Windows) я почти уверен, что вам все равно придется создавать окно и связывать контекст рендеринга с окном, хотя , вероятно, будет хорошо, если окно всегда скрыт.

8
ответ дан 30 November 2019 в 02:10
поделиться

Не уверен, что OpenGL - лучшее решение.
Но вы всегда можете выполнить рендеринг в буфер вне экрана.

Типичный способ записи вывода openGL в файл - использовать readPixels для копирования полученного пикселя-пикселя сцены в файл изображения

1
ответ дан 30 November 2019 в 02:10
поделиться

Вы можете использовать SFML http://www.sfml-dev.org/. Вы можете использовать класс image для сохранения отрисованного результата.

http://www.sfml-dev.org/documentation/1.6/classsf_1_1Image.htm

Чтобы получить отрендеренный вывод, можно выполнить рендеринг в текстуру или скопировать экран.

Рендеринг в текстуру:

Копирование вывода на экран:

1
ответ дан 30 November 2019 в 02:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: