0

我用 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 函数调用以指定如何解包像素?

4

1 回答 1

2

OpenGL 假定图像数据位于左下角,而大多数图像处理程序将其放置在左上角。

代替 glDrawPixels 使用纹理,然后您可以翻转纹理坐标。glDrawPixels 无论如何都是一个极慢的 CPU 周期吸盘,并且已从 OpenGL-3 及更高版本中删除。只是不要使用它。

于 2011-11-12T20:37:40.100 回答