我想问一些关于纹理编码和Android中加载pvr.ccz文件的问题。我正在使用Cocos2dx游戏引擎。
我无法加载纹理编码格式为PVRTCv2和PVRTCv4的pvr.ccz文件。但是,我可以用RGBA 8888,RGBA 4444等加载它。我检查过cocos2dx源码。它只是不允许Android加载这两种编码格式。我想知道在Android中是否有任何解决方法来加载这两种编码格式。
我已将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。
任何建议都会令人欣慰!! .. 谢谢!
答案 0 :(得分:0)
你有没有考虑过做一个cocos2d的分支并根据你的需要进行调整?
如果您要定位更多Android设备,我会首先针对不透明纹理进行 ETC1 压缩,提供适当的压缩并使您的apk更小。检查android.opengl.ETC1Util命名空间以获取一些实用程序代码以仅加载一个压缩映像(您需要从压缩文件加载每个mipmap级别)。
对于非不透明纹理,请使用特定于供应商的扩展程序。检查一下:Android OpenGL Texture Compression