Opengl使用lwjgl压缩纹理

时间:2011-04-09 07:39:46

标签: opengl textures lwjgl

我在ByteBuffer中加载了DXT1纹理,我试图用Opengl加载它

int tID = glGenTextures();
glBindTexture(GL_TEXTURE_2D, tID);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glCompressedTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, w, h, 0, imageData);
System.out.println(gluErrorString(glGetError()));

它在glCompressedTexImage2D调用上给出了错误“无效操作”。似乎无法弄清楚原因。

1 个答案:

答案 0 :(得分:1)

好的,我想出了问题所在。 imageData的大小不正确。 由于DXT1是每像素4位,我一直认为它应该是w * h * 4。 应该是w * h * 1/2(4位是1/2个字节)。