Shawn之前只是从感性的一面了Cocos Creator 2.0在性能更好,增加部分3D效果的支持,同时API有一些变化。随着对Cocos Creator 2.x的实践,以及引擎组大神们的指导,对Cocos Creator 1.x和2.x有了新的了解和认识,在此将这次学习内容与大家分享。
Cocos Creator 1.x 是在cocos2d-js基础上增加了组件化与可视化编辑器,随着引擎不断迭代与进化,之前cocos2d-js的渲染设计制约了引擎的发展,因此Cocos Creatro2.x 丢下了原有的包袱,重新设计了底层渲染。
通过下面的一些图我们对比一下1.x与2.x在渲染上的区别:
从上图可以看到,引擎中维护了一颗场景逻辑树(左边),需要时刻与渲染树(右边)进行数据同步。sgNode仅仅是为了同步Node的所有transform信息和渲染组件的状态信息,这造成了巨大的浪费。
在2.x使用了全新的设计,引擎内部只有一颗逻辑树,场景下包含节点,节点下挂载有渲染组件,简单清晰。因此在2.x中节点与组件对象中,不再有_sgNode这个变量了,使用时需要注意。
我们通过节点的transform为例对比1.x与2.x的渲染流程,请看下图:
2.x在渲染流程上预先建立了所有情况的渲染通道,看上图中:
transform、render、render&transform、render&transform&children。
通过节点的渲染标志直接进入某条渲染通道,有效减少动态判断带来的性能损耗。按Shawn的理解是将在原来的条件判断,进化成了直接查表,据引擎组大神讲预先建立的各种情况的渲染组合有上100多种之多。
我们再从整体上看一下2.0的渲染框架,请看下图:
使用2.0的Camera用极少的代码就能实现卷轴地图、缩略小地图、节点跟随、动态调整渲染顺序等复杂功能。
我们再看一下渲染数据这块,它分为两个部分:数据与表现,请看下图:
这部分的应用可以参考《ShaderHelper组件速递》《Material.js源码分析》。
本篇主要是对官方Cocos Creator 2.x引擎在渲染方面的解读,其中对开发者特别有用的渲染性能提升、自定材质、3D摄像机等等,让游戏表现会更加丰富。
本文分享自 Creator星球游戏开发社区 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!