【技术分享之三】cocos实现对ETC2的支持

检查一下:

glCompressedTexImage2D(GL_TEXTURE_2D, i, info.internalFormat, (GLsizei)width, (GLsizei)height, 0, datalen, data);

参数是否正确。
501错误是:
https://www.khronos.org/opengl/wiki/OpenGL_Error

GL_INVALID_VALUE, 0x0501
Given when a value parameter is not a legal value for that function. This is only given for local problems; if the spec allows the value in certain circumstances, where other parameters or state dictate those circumstances, then GL_INVALID_OPERATION is the result instead.

1赞

调试发现获取
Data data = FileUtils::getInstance()->getDataFromFile(_filePath);
这个data里面只有Head的信息,也就是十六字节。但是datasise是对的。

我是用Mali Texture Compression Tool v4.3.0生成的ETC2格式。是格式有问题吗?

你再仔细查一遍吧,肯定是哪一步有问题了,用MTC导出来应该没有问题的。
看看CCImage有没有问题

按照楼主的 步骤 亲测可行

再次建议安卓就不要用ETC2了,除非你们不考虑模拟器的份额了。

现在才1.5 你找他要2.1 的时间表…慢慢来吧.一切都会有的

这个牛,可以支持 web 平台吗(mobile/desktop safari chrome 什么的)?

模拟器支付率很高吗
占多少

应该是免费游戏靠广告收入的需要这些份额,对于付费的,用模拟器的应该没有支付习惯

模拟器有很多,特别原生的MMO,可以看看目前市面上的大型手游,基本上都会带一个模拟器的。

刚修改了下,可以支持模拟器了(海马模拟器),不过应该不能使用etc2(没测试),
目前的思路是走两套资源(更新资源),模拟器一般都是在电脑上玩的,所以流量什么的应该不是问题,
还没有实现走两套资源的功能,只是可以在模拟器上跑了,(走两套资源,理论上是可以实现的,只是目前还没有时间去实现)

Cocos2dxActivity.java.zip (4.8 KB)

修改了一下这里

这是啥意思,不用ETC2的话,模拟器一直都能跑吧?

那可能是我这里的问题,之前模拟器不能跑,修改了下,可以跑了。。

OpenGL error 0x0500 in frameworks/cocos2d-x/cocos/./base/CCConfiguration.cpp gatherGPUInfo 176
debug info: cocos2d: ERROR: Failed to compile vertex shader

android 4.4 版本 这是硬件不支持么? context没换。还是2.0的

同问,支持web平台吗?

不资磁

hi,除了pkm,可以提供pvr.ccz中像素格式ETC2_RGBA的支持吗?

PVRTC必须用POT的图片才行,但是现在有PVRTC2了,支持NPOT的图片了

@colinsusie 楼主有没有方式对ETC2进行软解的呢?想做成针对模拟器软解