我正在构建游戏,而且我目前支持以下纹理格式:
我想添加对ETC2的支持(ETC1不会为我们工作,因为我们的大部分图片都需要alpha通道)。 Cocos2d-x是否支持ETC2纹理?
答案 0 :(得分:2)
没有
但有两件事。
Cocos2d-x在CCTexture2D.h中没有ETC2定义。您需要自己添加ETC2定义。
https://github.com/cocos2d/cocos2d-x/blob/v4-develop/cocos/renderer/CCTexture2D.cpp#L60-L110
//! 2-bit PVRTC-compressed texture: PVRTC2 (has alpha channel)
PVRTC2A,
//! ETC-compressed texture: ETC
ETC,
//! S3TC-compressed texture: S3TC_Dxt1
S3TC_DXT1,
Cocos2d-x至少在Android上使用OpenGL ES 2.0上下文。
this.setEGLContextClientVersion(2);
因此,使用ETC2进行glCompressedTexImage2D需要这些扩展。
OES_compressed_ETC2_RGB8_texture
OES_compressed_ETC2_sRGB8_texture
OES_compressed_ETC2_punchthroughA_RGBA8_texture
OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture
OES_compressed_ETC2_RGBA8_texture
OES_compressed_ETC2_sRGB8_alpha8_texture