0

我想问一些关于纹理编码和在 Android 中加载 pvr.ccz 文件的问题。我正在使用 Cocos2dx 游戏引擎。

  1. 我无法加载纹理编码格式为 PVRTCv2 和 PVRTCv4 的 pvr.ccz 文件。但是,我可以使用 RGBA 8888、RGBA 4444 等加载它。我检查了 cocos2dx 源。它只是不允许 Android 加载这两种编码格式。我想知道在Android中是否有任何解决方法可以加载这两种编码格式。

  2. 我已将 pvr.ccz 文件编码更改为 RGBA 8888。它可以在 iOS 和 Android 中加载。但是,问题是当 pvr.ccz 文件大于大约 2.4 MB 时,Android 无法再次加载它。在内存使用中,它告诉我 pvr.ccz 文件的大小甚至大于 16 MB。可能是因为Android解压pvr.ccz文件。我想知道Android中的内存问题是否有任何解决方法。

我正在使用三星 Galaxy Tab P7500 进行测试,我假设它使用 PowerVR GPU。PVRTCv2 或 PVRTCv4 应该没问题。但是,在 cocos2dx 的源代码中,它没有检查任何与 GPU 相关的内容。它只是不允许 Android 加载 PVRTCv2 或 PVRTCv4。我们的游戏使用了太多的图形,如果我们使用 RGBA 8888,游戏的大小会变成 40 MB 左右,而当我们使用 PVRTCv2 时大小只有 18 MB。

任何建议将不胜感激!.. 谢谢 !

4

1 回答 1

0

您是否考虑过制作 cocos2d 的一个分支并根据您的需要对其进行调整?

如果你的目标是更多的 Android 设备,我会首先使用ETC1压缩不透明纹理,提供不错的压缩,并使你的 apk 更小。检查android.opengl.ETC1Util命名空间以获取一些实用程序代码以仅加载一个压缩图像(您需要从压缩文件中加载每个 mipmap 级别)。

对于非透明纹理,使用供应商特定的扩展。检查这个:Android OpenGL 纹理压缩

于 2013-05-20T05:15:28.897 回答