本次测试,我们要验证如下几点问题:
验证1:
- 同一图集下的图片渲染时,只需要一次drawcall。
- 图集中的图片所在的节点,如果其子节点中还包含其他图片(非图集图片或其他图集图片),则图集的渲染减少效果将失效。
例如:同一个节点下,有图集的图片1和图片2。那么渲染drawcall是1次,
例如:同一个节点下,有图集的图片1和图片2,其子节点中还有非图集中的图片3。那么图集起的效果失败。drawcall将会是3,而不是2。
![图集测试](https://img.it610.com/image/info10/089b0cc65c2c4fc3a5d5e86c1229a4f9.jpg)
文章图片
image.png
![图集测试](https://img.it610.com/image/info10/4d867465b0b145e8b7329d892dfa2d9d.jpg)
文章图片
image.png
![图集测试](https://img.it610.com/image/info10/804d152e460c4392b39b14515f260703.jpg)
文章图片
image.png
这时候图片都是散图,不是图集,我们运行,看到对应的drawcall: 2
![图集测试](https://img.it610.com/image/info10/78cebbdabec24daab2ff6393f06fe38b.jpg)
文章图片
image.png
接下来,我们将这两张图片打在一个图集中。
![图集测试](https://img.it610.com/image/info10/1ab2b430abc64923946e987154684ce4.jpg)
文章图片
image.png
然后,修改图片节点所取的图片为图集中的图片。
![图集测试](https://img.it610.com/image/info10/b80c4e55328a4e29b251ddd20e618044.jpg)
文章图片
image.png
![图集测试](https://img.it610.com/image/info10/5b44f3c243e4475b89257a64c7f757e9.jpg)
文章图片
image.png
再次运行,我们看到对应的drawcall变成了1
![图集测试](https://img.it610.com/image/info10/e273481a701b4663aa3b1eef3df2aeec.jpg)
文章图片
image.png
问题1验证通过。
【图集测试】验证2:
![图集测试](https://img.it610.com/image/info10/8ecebb00387c4dd8bdfe84ffefa3af29.jpg)
文章图片
image.png
同层级下,节点scrollviewbg取散图。
节点goldcoin、gold分别取图集里的图片。
这时候,图集效果没有失效,运行时drawcall还是2次,
![图集测试](https://img.it610.com/image/info10/cce9a5a1c95f4cb9bc145a79863e7134.jpg)
文章图片
image.png 接下来,我们将一个图集图片节点和散图图片节点,放在同一个节点下。如下两种情况:
![图集测试](https://img.it610.com/image/info10/13d0d892d47349119b964b90c42d3c7c.jpg)
文章图片
image.png
![图集测试](https://img.it610.com/image/info10/4b0c2a4dc8f3485ba30f9668b067bbd9.jpg)
文章图片
image.png 再次看运行结果:
![图集测试](https://img.it610.com/image/info10/6da72908d5894ba8bfac37b5bbbbf060.jpg)
文章图片
image.png
drawcall变成了3次。 图集的批处理效果失效了。