【发布时间】:2011-12-07 12:43:20
【问题描述】:
我在从 PVR 加载 tga 时遇到问题。
我相信 PVR 加载正确,但是当我尝试将纹理加载到 OpenGL 时,我遇到了问题。
我越来越奇怪,不连贯的图纸。我会将我正在制作的整个纹理文件传递给我的图形窗口类,然后要求它获取无符号整数的 id,然后创建纹理。
这是我的加载纹理类。
glGenTextures(animalTexture->getID(), &texture[0]);
glBindTexture(GL_TEXTURE_2D, texture[0]);
glTexImage2D(GL_TEXTURE_2D, 0, 3, animalTexture->getWidth(),animalTexture->getHeight(), 0, GL_RGBA, GL_UNSIGNED_BYTE, animalTexture->getImageData());
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
我想知道原因可能是什么。这个方法确实被多次调用,所以我想知道你是否可以覆盖以前生成的纹理而没有任何问题?您是否必须使用胶水来生成纹理?我正在尝试加载 tga。
我知道这可以使用正常保存的图像成功绘制。
任何想法或帮助将不胜感激。
p.s 忽略我的黑点。
【问题讨论】:
-
你确定你的贴图像素数据的格式和类型是RGBA和Unsigned byte吗?
-
@arasmussen,不是 100% 没有。有什么办法可以查到吗?我认为这是标准。
-
“我越来越奇怪,不连贯的图纸”。截图时间。
-
@genpfault 我可以截图吗?关于这个?
-
PVR 是一种压缩纹理格式,那么,您究竟传递给 glTexImage2D 的是什么?压缩文件?那是不对的。