Как загрузить изображение BACK из OpenGL? - PullRequest
4 голосов
/ 27 октября 2011

Мне удалось загрузить изображение в OpenGL в качестве текстуры (я использую Gdk :: Pixbuf из библиотеки GTKmm), но я не знаю, как получить измененное изображение из OpenGL и загрузить его в Gdk :: Pixbuf ...

Я хочу изменить изображения в OpenGL и сохранить их на жестком диске.

Есть код:

Glib::RefPtr<Gdk::Pixbuf> pixmap = Gdk::Pixbuf::create_from_file("image.jpg");
GLuint texture[1];
glBindTexture(GL_TEXTURE_2D, texture[1]);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, pixmap->get_width(), pixmap->get_height(), 0,      GL_RGB, GL_UNSIGNED_BYTE, pixmap->get_pixels() );

Ответы [ 3 ]

4 голосов
/ 27 октября 2011

Пока вы не используете OpenGL ES, а настоящий OpenGL для рабочего стола, вы можете просто использовать glGetTexImage.

4 голосов
/ 27 октября 2011

Визуализация текстурированного четырехугольника в буфер кадров, а затем glReadPixels().

0 голосов
/ 04 января 2014

Если вы хотите избежать вызова отрисовки, вы можете создать кадровый буфер и прикрепить текстуру к цветному вложению, а затем использовать glReadPixels

...