glGenTextures 的图像格式

Image format for glGenTextures

我已经使用

在 python 中转换了一张图片
from PIL import Image
img = Image.open('myPixelArt.bmp')

那我打电话给

im = glGenTextures(1,img)

但事实证明im = 0

以及许多其他功能

我已经尝试了几乎所有的方法来显示这个图像,我想知道我在这个函数中加入了什么。

glGenTextures 中第二个参数的格式是什么(不是 .bmp or.png 而是矩阵大小,数字范围是从 0 到 1 还是最多 255 等)?

如何在python中找到img的格式?

glGenTextures 是否应该 return 0?

您误解了 glGenTextures 的作用。此函数仅为 OpenGL 纹理创建处理程序。您正在使用 c 语言签名,它仅在 python 文档中提供信息。

此函数 returns n 整数将用作纹理的名称,c 中的正确语法是:

void glGenTextures(GLsizei n,  GLuint * textures);

但是你没有使用c,所以对于python,你必须使用正确的签名:

 textures = glGenTextures   ( n )

其中纹理必须是一个数组,用于保存函数返回的名称。

您可以为单个纹理设置 n=1:

texture = glGenTextures(1)

要为您的新纹理配置和设置数据,您必须使用 glBindTexture 将名称绑定到上下文,使用 glTexImage2D 设置纹理的像素数据,您还可以设置一些glTexParameter.

参数

有关完整示例,请参阅 here.