编辑:好的,对不起,我有一个简单的编程错误,有没有办法删除这个问题?
我有一些 PVR 文件的压缩纹理,但我似乎无法使用 OpenGL ES 在我的 iPad 应用程序中绘制它们。
我可以很好地绘制 PNG 文件,我知道 PVR 文件正在正确加载。我需要调用一些特殊的 OpenGL 绘制函数来绘制 PVR 文件吗?
编辑:我得到的只是一张白色的图像。
任何信息表示赞赏。
绘制 PVRTC 纹理应该与任何其他纹理格式完全相同 - 看起来更有可能是您的加载代码有问题。加载过程中是否报告了任何 GL 错误?
加载未压缩纹理的主要区别在于:
glCompressedTexImage2D(GL_TEXTURE_2D, level, GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG, width, height, 0, size, data);
或者
glCompressedTexImage2D(GL_TEXTURE_2D, level, GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG, width, height, 0, size, data);
如果 MIPmaps 也不在纹理中,请确保您没有设置 GL 过滤器模式以使用 MIPmaps。
在 Apple 的文档中搜索 PVRTC 会得到一个关于如何使用这些纹理的不错的总结。
上传后,PVR 纹理与其他格式没有什么不同。上传数据时是否忘记跳过标题,或者为 glCompressedTexImage2D 使用了错误的参数?由于尺寸或颜色格式错误,压缩工具甚至可能无法转换图像。