2

我正在尝试使用 PVRTC 图像而不是 PNG。问题是,我无法在地图上看到它们。

这是我的代码:

glGenTextures(1, &bg1Texture);
glBindTexture(GL_TEXTURE_2D, bg1Texture);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); 
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);

NSString *path = [[NSBundle mainBundle] pathForResource:@"starfield_00" ofType:@"pvr"];
NSData *texData = [[NSData alloc] initWithContentsOfFile:path];

glCompressedTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG, 512, 512, 0, [texData length], [texData bytes]);

[texData release];

我使用这个命令来创建压缩纹理:

texturetool -e PVRTC --bits-per-pixel-2 -o starfield_00.pvr -f PVR starfield_00.png 

glGetError()返回 1281(绑定纹理失败)。但是,如果我检查glIsTexture (),它会返回 true。

有任何想法吗?哦,我在 iPhone 上使用 OpenGL ES。

4

1 回答 1

2

在我从编码过程中删除-f PVR选项后,我能够加载纹理并使用 RGBA 选项显示它。有趣的是,这个编码命令行取自 Apple 的一个示例程序......

于 2009-07-24T06:35:24.213 回答