5评论

Laya引擎游戏渲染优化

刘超俊 2018-01-08 1.2k浏览

想免费获取内部独家PPT资料库?观看行业大牛直播?点击加入腾讯游戏学院游戏开发行业精英群711501594

针对使用laya引擎制作的H5游戏一些减少DrawCall优的一些优化方案

我们在游戏的过程中可以通过Laya.Stat.show();打开性能面板,来实时观察我们游戏在运行中的性能.


WebGL模式下,有几个指标是游戏在运行过程比较关注的:
Sprite表示渲染的节点数量,数量越多需要遍历的节点越多当然也就越耗时.
Canvas表示缓存画布的数量.
DrawCall表示渲染提交批次,每次准备数据完后通知GPU渲染,为一次DrawCall,除了通知显卡有时还需要切换材质,所以一般这个值是我们需要重要优化的指标.
另外我们可以通过laya.debug.DebugPanel.init();打开laya的调试工具.


通过点击刷新可以看到目前所有游戏中节点的数据.再设置各个节点的是否可见来观察这个节点的渲染消耗.当然还有其他很多方法,这里不展开讨论.

我们做的是一款捕鱼类游戏同场景里面会存在大量的显示对象造成玩家在低端机上游戏会有卡顿.为了减少游戏运行时的渲染(drawcall)我们在游戏鱼群划分时把相同资源的鱼群同放在同一个鱼层里,在其在渲染提交时能够被合并在同一批次进行提交来减少drawcall.合批后我们的drawcall由最高的140降到了60左右.

        

 

UI资源也同理,同一图集的资源最好放在一起减少提交显卡的频度和切换纹理的耗时.

 

 

 动态的UI和静态的UI最好分在不同的容器里,把静态层cache bitmap来减少Draw call.

本文作者

刘超俊

腾讯前端高级工程师,腾讯学院讲师,现任火影忍者OL前端主程,曾开发QQ水浒,Q宠大乐斗,企鹅社区,QQ宝贝等项目。

腾讯游戏学院公众号