2D 渲染组件合批的规则是节点的 layer、使用的材质、渲染组件的 blendState 和 DepthStencilState 相同、贴图源以及贴图采样都相同才会进行合批。 下面我们就分别说明一下这些条件: 节点的 layer:由于 layer 会涉及到渲染与否,所以不同的 layer 之间不能进行合批 材质:材质相同是合批的必然要求,由于我们使用的材质实例...
在CocosCreator中,FBO的使用可以通过Camera的Render来实现。 (2)动态修改父节点和节点的顺序。理想的情况主要是将能够合批(见合批规则与原理)的节点放在一起,并将文字节点和图片节点分开放。满足引擎渲染队列广度遍历、以及避免文字会打断合批的情况。 在相对静态或对更改父节点不频繁、不影响游戏流程的情况下,可以采用...
本文介绍另一种方法,即能让shader获得自定义参数,又能让自定义材质合批渲染。这种方法就是自定义顶点格式 Assembler详解 Assembler是实现本文相关功能的核心类,先简单回顾一下官方文档里介绍的内容 https://docs.cocos.com/creator/manual/zh/advanced-topics/custom-render.html#%E8%87%AA%E5%AE%9A%E4%B9%89-ass...
用代码创建100个spine动画小人,无动作。 合批后是 2 drawcall.但是在苹果6设备的微信版本里,渲染效率只有7 帧。 同时在 oppo手机上查看 内存,有100M内存的增长。 案例在附件里。请查看。 理论上2 drawcall 画 100个小人,不应该有渲染降帧影响 ,麻烦帮忙解决下。1...
【Gitee 开源项目推荐 | Cocos Creator自定义渲染框架 lcc-render】作者发现大家的Shader并没有考虑到Creator自己的合图与渲染合批功能,使用限制比较大。于是就有了这个项目。 项目地址:链接 发布于 2020-10-26 10:23 赞同 2 分享 收藏 写下你的评论... ...
本文首发于 Cocos 中文社区,作者 GT。 保证阅读体验,[参考链接]统一放在文末。 背景 自定义渲染可以实现很多酷炫的 shader 特效,目前常用的有两种方法: 1.创建自定义材质,给材质增加参数。这个参数会作为 uniform 变量传入 shader。 由于渲染合批要求材质参数保持一致,所以如果大量对象使用自定义材质时,并且材质参数各...
MeshBuffer 合批说明 由于合批要求渲染对象的顶点在同一个 MeshBuffer 中,而以下几种情况则会造成 MeshBuffer 切换。 v3.4.1 之前 场景中要绘制的顶点数量超过了 MeshBuffer 所能容纳的最大顶点数量(65535 个)。 v3.4.1 之后 由于我们在 v3.4.1 中采用了新的渲染数据提交设计,所以需要注意以下几点...
工作流 功能模块
工作流 功能模块
2D 渲染组件合批需要满足以下几点条件: 合批方法说明 结合以上的合批条件说明,我们可以通过一些方法来实现更好的合批方法。需要额外说明的是,2D 渲染组件的渲染数据采集使用的是基于节点树的渲染方式,而有部分组件无法合批,且会打断其他组件合批,需要用户进行分模块管理节点树布局,以达到更好的合批效果。无法合批的组...