Вопрос
Я пытаюсь преобразовать OpenGL [править:"карточка, которую я нарисовал" (?):) thx unwind]содержит много текстур (ничего движущегося) в одном PNG-файле, который я могу использовать в другой части фреймворка, с которым я работаю.Есть ли библиотека C ++, которая это делает?
Спасибо!
Решение
Если вы просто имеете в виду "возьмите сцену, отрисованную OpenGL, и сохраните ее как изображение", то это довольно просто.Вам нужно прочитать сцену с помощью glReadPixels(), а затем преобразовать эти данные в формат изображения, такой как PNG (http://www.opengl.org/resources/faq/technical/miscellaneous.htm).
Существуют также более эффективные способы достижения этой цели, такие как использование ФБОs.Вместо рендеринга сцены непосредственно в фреймбуфер, вы можете рендерить ее в текстуру через FBO, а затем визуализировать эту текстуру в виде полноэкранного квадрата.Затем вы можете взять эту текстуру и сохранить ее в файл (используя glGetTexImage Изображение, например).
Другие советы
Что такое "файл OpenGL"?OpenGL - это графический API, в нем не указаны какие-либо форматы файлов.Вы имеете в виду файл DDS или что-то в этом роде?
Есть лучшие способы создать композитную текстуру, чем рисовать ее с помощью видеокарты.Это действительно то, что вы хотели бы сделать перед запуском процессора, сохранить и затем использовать по мере необходимости с opengl