在使用Layabox的2d精灵时,我们会需要很多渲染图片的需求,那么,如果做到使用最小的代价实现图片的渲染呢。

合并图集

为什么要合并图集呢。如果你一个图片是由多张图片组成的,正常情况,在webgl模式下,渲染一张图片,就是一次drawcall,但是呢,如果纹理没有切换,只是切换渲染的位置,Layabox会自动给你合批,你相当于一次drawcall就实现了整张图片的渲染。

这个问题发现是我之前测试过官网的瓦块图时,发现设置cacheAs为normal时,它的drawcall只需要一次。而我自己设置的瓦块图,需要渲染多少个瓦块,就有多少drawcall。后来就发现了这个,如果当前的瓦块都属于一张图集,那么,自动合批,会一次性给你渲染出来。
所以,如果都是一个精灵使用的,而且图片还不大,可以合并成一张图片使用,可以降低性能损耗。

设置cacheAs

如果出现多个单个图片,或者无法合并成图集的情况。我们还要想办法降低性能。那就是用到cacheAs方法,这个属性有三个值,'none’就是默认,不缓存。‘normal’就是正常缓存,会把你的精灵渲染的内容,生成graphics的命令模式,但是性能降低不是很多,多张图片切换,还是有很多的drawcall。‘bitmap’直接将渲染完成的纹理缓存起来,这种会增加内存和缓存的占用,如果你的一张精灵就几千次drawcall渲染出来,使用这种方式你可以节省几千次的drawcall。
那么,如果地图过大的话,我们就要灵活使用,即不能占用太大的内存和缓存,还能减少drawcall的方法。
我的实现方式,是增加地图块对象,每个地图块固定宽高,把整个地图分成多张地图块。根据当前地图显示范围进行显示隐藏。显示,设置精灵的cacheAs为’bitmap’,并渲染一次即可。而无法显示的瓦块,我们可以把cacheAs设置为’none’,并且将其graphics调用clear事件清空画布。

希望我总结的经验,能让大家有些收获。

Layabox的2d精灵的性能优化相关推荐

  1. 【Cocos2d-x】Cocos2d-x精灵的性能优化

    Cocos2d-x精灵的性能优化-使用纹理图集和精灵帧缓存 使用纹理图集 纹理图集(Texture)也称为精灵表(Sprite Sheet) 使用纹理图集的优点: 1.减少文件读取次数,读取一张图片比 ...

  2. coco2dx精灵和背景遮挡_Cocos2d-x精灵的性能优化——使用纹理图集和精灵帧缓存...

    使用纹理图集 纹理图集(Texture)也称为精灵表(Sprite Sheet) 使用纹理图集的优点: 1.减少文件读取次数,读取一张图片比读取一推小文件要快 2.减少OpenGL ES绘制调用并且加 ...

  3. 极光会客厅:大型H5游戏如何登陆微信小游戏及游戏性能优化分享

    上周末,由极光网络主办的首期"极光会客厅"正式开门迎客.在本次的"2D小游戏开发实战技术沙龙"上,极光网络客户端主程陈策以及极光网络项目总监陈源向一众与会者分享 ...

  4. Unity 性能优化:资源篇

    Unity性能优化 大的方面来说,通过Unity对于项目的性能优化大概可以分为下面几个部分: 资源 渲染 程序 项目配置 而在这个部分中,资源的性能优化属于最基础.最有效的优化手段,也是游戏开发者日常 ...

  5. 游戏性能优化指南:如何将HTML5性能发挥到极致

    HTML5作为新兴领域越来越热.然而在移动设备硬件性能弱于PC的背景下,对性能的需求显得更为重要,而HTML5性能优化前与优化后有着极大的差别,如何优化才能提高性能,对此熟知的人很少.本文以LayaA ...

  6. Unity 工具 之 图集根据切割为一张张单张图片的简单封装(Unity 自带 SpritePackage 打包图集的性能优化)

    Unity 工具 之 图集根据切割为一张张单张图片的简单封装(Unity 自带 SpritePackage 打包图集的性能优化) 目录 一.简单介绍 二.实现原理 三.注意事项 四.实现步骤 五.关键 ...

  7. MegEngine推理性能优化

    MegEngine推理性能优化 MegEngine「训练推理一体化」的独特范式,通过静态图优化保证模型精度与训练时一致,无缝导入推理侧,再借助工业验证的高效卷积优化技术,打造深度学习推理侧极致加速方案 ...

  8. 深度讲解:web前端性能优化

    一.课程简介: 1.课程大纲 涉及到的分类 网络层面 构建层面 浏览器渲染层面 服务端层面 涉及到的功能点 资源的合并与压缩 图片编解码原理和类型选择 浏览器渲染机制 懒加载预加载 浏览器存储 缓存机 ...

  9. WEB前端性能优化小结

    1. 请减少HTTP请求 基本原理: 在浏览器(客户端)和服务器发生通信时,就已经消耗了大量的时间,尤其是在网络情况比较糟糕的时候,这个问题尤其的突出. 一个正常HTTP请求的流程简述:如在浏览器中输 ...

  10. 页面性能优化详细总结

    前言:对于一个前端开发工程师来说,提高网站性能方面是非常重要的,这可以更好的提高用户体验 如何进行网站性能优化 雅虎Best Practices for Speeding Up Your Web Si ...

最新文章

  1. 【OpenCV学习笔记2】OpenCV 完全安装 新增VS2010+OpenCV2.1,新增VS2010+OpenCV2.3.1
  2. 第四讲 deque
  3. golang中的bufio
  4. 视频解码基础知识(二)
  5. 殷浩详解DDD:如何避免写流水账代码?
  6. pthread_cleanup_push()/pthread_cleanup_pop()的详解
  7. MySQL 数据库基础知识(系统化一篇入门)
  8. 小程序使用微信收货地址
  9. 【Visual C++】游戏开发五十四 浅墨DirectX教程二十一 视觉的诡计:公告板(Billboard)技术
  10. 12306抢票工具的使用
  11. Python环境与PyCharm编辑器的安装教程
  12. 湖南省工信厅党组书记、厅长雷绍业一行莅临麒麟信安调研
  13. Python-被7整除
  14. chrome 油猴 电脑或者手机click()失效,解决
  15. 科研必备的14个学术搜索引擎
  16. SQL语句merge into的用法
  17. RedFlag3.2下开启ssh
  18. jQuery高级用法、axios、同源与跨域、JSONP以及防抖与节流
  19. u3d:后期屏幕渲染特效
  20. sap erp发展史

热门文章

  1. 数学分析教程(科大)——2.10笔记+习题
  2. 用selenium模拟QQ空间登录
  3. 包工协议书样本_个人承包协议书范本
  4. oracle pdb启动日志,案例:Oracle 12C 数据库pdb丢失数据文件后的完整恢复过程
  5. 基于Linux系统PXE启动DOS工具
  6. 新gre考试用什么复习资料?
  7. 如何搭建百度离线地图服务
  8. dnf喇叭怎么设置不显示服务器,《DNF》屏蔽广告喇叭方法 广告喇叭怎么关掉
  9. qq同步android 2.2,支持手机号注册!Android QQ同步助手2.1发布
  10. win7计算机怎么重置,win7系统的电脑如何重置 win7重置电脑的方法