Файл изображения OpenGL и GIMP, экспортированный как файл.c
Я нарисовал файл изображения с GIMP и сохранил его как файл.c. Затем я использовал следующее в своем коде OpenGL, чтобы загрузить изображение на экран:
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glRasterPos2i(x_disp, 0);
glDrawPixels(80, 80, GL_RGB, GL_UNSIGNED_BYTE, gimp_image.pixel_data);
Однако загруженное изображение выглядит перевернутым на 180 градусов вверх ногами. Интересно, есть ли опция, которую я могу предоставить в OpenGL, чтобы изображение можно было отображать с той же ориентацией, что и в GIMP, с верхней стороной вверх и левой стороной слева, возможно, с помощью glPixelStore или какой-либо другой функции OpenGL позвонить, чтобы уточнить, как распаковать пиксели?
1 ответ
OpenGL предполагает данные изображения в левом нижнем углу, в то время как большинство программ для работы с изображениями размещают их в левом верхнем углу.
Вместо glDrawPixels используйте текстуру, тогда вы можете просто перевернуть координаты текстуры. В любом случае glDrawPixels является чрезвычайно медленной присоской цикла ЦП и была удалена из OpenGL-3 и более поздних версий. Просто не используйте это.