使用原则
- 1.在内存够用的情况下,带Alpha通道的贴图请使用png格式,没有Alpha通道的使用jpg。如果你的游戏内存不足时,请使用如下所列的专属贴图格式.
- 2.需要效率的游戏(如较多3D物件的游戏),使用请专属贴图格式.
- 3.至于Android设备,游戏开发者贴图分格式包麻烦,直接用png最省事,需要省内存的就用PVR RGBA4444格式。如果游戏能赚钱再考虑对主流Android机做数据优化。
- 4.为了能兼容各种手机,贴图的长宽不要超过2048(tga格式的图片不要超过1024)。3D光效或模型的贴图必须为2的幂次方,2D图片没有这个限制。
- 5.PVR是种有损颜色压缩的格式,不能保证单个像素这种精度的颜色值,太精致的图片会压缩失真。PVR是业界产商制订的贴图标准格式,不是C3引擎所能修改的,如果游戏不能接受这种失真,则只能使用原有的png格式,以多耗内存的代价换取颜色值上的精确。
通用格式和专属格式
- 通用贴图格式: png/jpg/tga在每个平台上都可以使用,不建议使用tga格式。
- PVR RGBA 4444格式,在每个平台上都可以使用。Windows RT/Windows Phone使用ARGB 4444格式。
高效压缩的但非通用的贴图格式:
此类格式是各平台专属使用,某种专属格式只能用在某种CPU的机器上,但在执行效率上是通用纹理的 8-16 倍,内存是通用纹理的1/8。
PC平台
- 高效压缩格式纹理dds.
iOS平台
- 高效压缩格式纹理: pvr, 必须是正方形且边长为2的幂次方,使用PvrTexTool生成.
- PvrTexTool支持命令行调用,调用方法和参数请参考纹理工具命令行调用范例
- 苹果设备限制标准官方文档
Android平台
C3游戏引擎在Android系统下,根据已知的5种机型硬件不同,采用不同的压缩格式纹理:
- 1.Mali CPU(三星猎户座CPU,如I9220/I9300等(Galaxy 2/3)): 不透明纹理使用ETC压缩,使用PvrTexTool生成ktx格式后缀的纹理,透明纹理使用png.
- 2.高通的CPU(HTC手机): 使用The Compressor 工具生成的ATC格式纹理(Note:工具生成的文件后缀名为dds,需要修改后缀名为atc给C3游戏引擎使用)
- 3.德州仪器CPU(摩托罗拉手机或其他基于PowerVR的GPU的解决方案,如联发科MT6573处理器,三星GS4): 使用跟苹果iOS一样的pvr格式,使用PvrTexTool生成.
- 4.Nvidia Tegra2 CPU: 使用DDS压缩纹理,等同PC上的纹理格式(DXT1, DXT3, DXT5).
- 5.Marvell GPU(中兴U880/华为海思CPU):OpenGLES2.0驱动实现有严重问题,只能用png格式。
Flash平台
- Adobe公司atf格式纹理压缩专用格式.
贴图格式对比
文件大小以zip压缩打包后的大小为评判标准,内存以无损的PNG格式为参考标准,内存占用越小,引擎运行效率越高。
贴图格式对比 | PC机 | iOS | Android | WindowRT WinPhone8 | 文件大小 | 内存占用 | 是否有损 |
---|---|---|---|---|---|---|---|
PNG | 支持 | 支持 | 支持 | 支持 | 1 | 1 | 无损 |
PVR TC 4BPP | 不支持 | 支持 | 只有部分使用PowerVR芯片的机型支持 | 不支持 | [1/4, 1/3] | 1/8,在iOS系统上效率极高。 | 有损 |
PVR RGBA4444 | 支持 | 支持 | 支持 | 支持 | [1/4, 1/3] | 1/2 | 有损,丢失一半的色阶。 |
MJP | 支持 | 支持 | 支持 | 支持 | [1/10, 1/5],文件最小。 | 1/2 或 1 | 有损,等同jpg格式的损失,质量可调。 |
DDS | 支持 | 支持 | 支持 | 支持 | 1/3 | PC/WinRT平台上为1/4,其他平台为1。 | 有损 |
JPG | 支持 | 支持 | 支持 | 支持 | [1/10, 1/5],没有透明通道。 | 1 | 有损 |
工具下载
解释
- C3引擎不支持pvr.ccz,解释如下: pvr.ccz是将单个pvr文件用zlib库进行压缩得到的文件,而C3游戏引擎是对所有资源文件进行整体压缩打包,压缩效果更好,而且避免了零散文件碎片的效率IO损耗,是个更好的解决方案,所以C3引擎不支持pvr.ccz格式。
- 深入理解GPU纹理兼容性