@an540545947 写道:
先理清楚一个概念渲染因为分为visit和render两个流程
然后每次断Batch都是因为发现当前处理的渲染组件和前面处理的不同导致需要断掉先把原先的flush了,这就是为什么我们新建工程里如果图片都是SIMPLE的,在visit的时候walker到Label发现和原来并不一样这个时候断掉add的Model就是之前的两个sprite的。
重要概念: 发现当前处理的渲染组件和前面处理的不同导致需要断掉
知道了上面的概念以后断点看流程的时候发现
sliced使用的是Mesh-buffer 而walker默认的是QuadBuffer,在Sliced的assemblerde fillBuffers里buffer.request方法里做了一个 if (this.renderer.buffer !== this) 的判断 不同就flush一次 这次执行还没什么flush判断的时候会 if (!this.walking || !material || indiceCount <= 0) return掉,但是这个时候已经把walker的buffer置为了MeshBuffer,这个时候执行下一个渲染组件的visit-flow的时候如果是Quad的,那么就会flush了这个时候就会把之前的add 所以断掉了Batch
帖子: 1
参与者: 1