cocos2d-x 优化(纹理渲染优化、资源缓存、内存优化)
来源:互联网 发布:java与js字符串转码 编辑:程序博客网 时间:2024/05/21 02:34
概述
引擎优化
纹理优化
纹理是最消耗内存的,而且会降低渲染速率。
二的幂次方
OpenGL在申请内存存放纹理时,是按2的幂次方申请的,即对应480*320的图片,它申请的是512*512空间。可见,会有相当多的内存被浪费。所以,我们设计的图片,最好是2的幂次方,不然OpenGL最终还是申请2的幂次方内存空间。
由于不是所有图片都刚好能设计成2的幂次方,因此通过“拼图”方法解决。这就是为啥要使用TexturePacker的原因。如图:
色深优化
图片所占内存的大小用这条公式计算:高度像素*宽度像素*色深。如色深RGBA8888,是32个bit,每8bit是一个字节,因此一个像素点占4字节,就是一个整形字符大小。例子。一个480*320的图片大小,占内存480*320*4字节。
通常,如果对图片的色彩要求不是很高的话。ARGB8888(占4字节)可以改为,ARGB1555(2字节)(透明通道A占1位一般是用做图片混合运算)或者ARGB4444(如果不是做混合运算,用4位比较合适)。或者,如果不需要使用图片透明,就不需要A通道,直接使用RGB888(3字节)改为RGB565(2字节)。这样,图片的最终内存大小就会占用更少的空间。
纹理压缩格式
IOS系统使用PowerVR显示芯片,可以直接硬解码PVR格式,该格式可以直接被IOS读取。不过该方式不适合Android等平台。
PVR格式实际上就是把ARGB8888转成ARGB1555色深进行保存的。
骨骼动画
cocos2d-x 2.0.3开始支持骨骼动画,cocos2dBuilder2.1版本也可以进行动画编辑。在处理动画时,对内存优化也是很好的方案。
纹理尺寸限制
不同设备支持的纹理尺寸不一样,iphone4支持最大的是4096*4096,iphone4s是4096*2048。有的android设备,仅仅限制在1024*1024。拼图的时候要避免把图片拼的太大。为了提高游戏的兼容性,图片的尺寸最好都设置在1024*1024范围内(主流设备都支持)。
渲染优化
批次处理
使用CCSpriteBatchNode,准备好Sprite的坐标信息后,进行一次性渲染。
传统渲染处理是这样的:不同的切换纹理,不同地加载和渲染。而批次处理是一次加载完所有纹理,然后一次渲染,这样效率就提高了。
资源缓存
内存优化
资源占用的内存优化
内存池方案
- cocos2d-x 优化(纹理渲染优化、资源缓存、内存优化)
- cocos2d-x 优化(纹理渲染优化、资源缓存、内存优化)
- cocos2d-x 优化(纹理渲染优化、资源缓存、内存优化)
- cocos2d-x 优化(纹理渲染优化、资源缓存、内存优化)
- Cocos2d-x 纹理优化
- Cocos2d-x 游戏纹理优化和内存优化
- cocos2d-x 纹理优化选择
- cocos2d-x 资源优化
- Cocos2d-x优化中纹理优化
- Cocos2d-x优化中纹理优化
- cocos2d-x利用精灵表和纹理缓存实现优化
- cocos2d-x 内存优化
- cocos2d-x内存优化
- cocos2d-x内存优化
- Cocos2d-X 内存优化
- cocos2d-x ----内存优化
- Cocos2d-x 内存优化
- Cocos2d-x纹理优化的一些方案
- HDU 1267 下沙的沙子有几粒?
- 高并发的epoll+线程池,业务在线程池内
- Git使用教程(一)--搭建Github环境
- 内存管理与属性的参数
- 基于Saltstatck实现页面实时显示tomcat启动日志(17)
- cocos2d-x 优化(纹理渲染优化、资源缓存、内存优化)
- 【HBase】HBase的eclipse开发环境搭建
- 字符串倒序输出
- 机器学习系列05——决策树(Decision tree)
- AOP框架之:Spring AOP和AspectJ
- 正则符号含义:
- 五大常用算法之五:分支限界法
- maven 指定默认的本地仓库
- Date、DateFormat