OpenGL в PNG

Я пытаюсь конвертировать openGL [править: "карту, которую я нарисовал"(?):) thx unwind], содержащую много текстур (ничего не движется), в один файл PNG, который я могу использовать в другой части фреймворка Я работаю с. Есть ли библиотека C++, которая делает это?

Спасибо!

3 ответа

Решение

Если вы просто имеете в виду "взять сцену, отрисованную OpenGL, и сохранить ее как изображение", то это довольно просто. Вам необходимо прочитать сцену с помощью glReadPixels(), а затем преобразовать эти данные в формат изображения, такой как PNG ( http://www.opengl.org/resources/faq/technical/miscellaneous.htm).

Есть также более эффективные способы достижения этого, такие как использование FBO. Вместо рендеринга сцены непосредственно в буфер кадров, вы можете рендерить ее в текстуру через FBO, а затем рендерить эту текстуру как полноэкранный квад. Затем вы можете взять эту текстуру и сохранить ее в файл (например, используя glGetTexImage).

Есть лучшие способы сделать композиционные текстуры, чем рисовать их с помощью видеокарты. Это действительно то, что вы хотели бы сделать, прежде чем вручать на процессор, хранить, а затем использовать как и когда вам это нужно с opengl

Что такое файл OpenGL? OpenGL - это графический API, он не определяет форматы файлов. Вы имеете в виду файл DDS или что-то?

Другие вопросы по тегам