【问题标题】:PVRTCv2 or v4 Encoding Can't be Loaded on Android - Cocos2dxAndroid 无法加载 PVRTCv2 或 v4 编码 - Cocos2dx
【发布时间】:2013-05-14 14:28:29
【问题描述】:

我想问一些关于纹理编码和在 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。我们的游戏使用了太多的Graphic,如果我们使用RGBA 8888,游戏的大小会变成40 MB左右,而我们使用PVRTCv2时大小只有18 MB。

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

【问题讨论】:

    标签: android opengl-es cocos2d-x


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-09-05
      • 1970-01-01
      • 1970-01-01
      • 2022-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      相关资源
      最近更新 更多