图片渲染模式改为平铺时,当宽度很长时,渲染耗时飙升到几百

image
空场景,两千个图片修改宽度,几秒钟就飙升了,有啥办法 :sob:

image
和每帧修改没有关系,和长度有关

需求是什么, 这2000个在update 每帧不停修改, 和平铺模式没关系

可能因为平铺模式没有参与动态合图不能合批
2.x好像是可以合批的

update应该不会影响渲染耗时吧?

因为平铺修改宽度会影响uvdata, 你可以简单理解为平铺多少分就创建多少Sprite

看看给它动态合图一下会不会好点 :grin:

事实就是平铺才会增加,宽度越大消耗越大 :sob:

有啥解决办法吗

和宽高有关

你的图片是不是很小的那种?千万不要用小图片用平铺模式去拉

对,几十个像素,改成2048好点了,但是实际宽度比这还长

它会导致你的渲染缓存爆掉,你有183个drawcall应该就是这个缓存爆了183次 :smiley_cat:

有道理,把原图尺寸平铺长一点就好了

shader里去平铺?

平铺模式本质上就等于用大量的三角面去渲染出这个网状重复的效果,一般来说影响不大,但是你这种情况,三角面估计量太大了。你可以考虑用shader的方式实现等同于平铺于的表现。

你这里的情况不光是渲染的消耗。因为平铺的三角面的数量,uv等数据,是根据尺寸变化后需要重新计算的。这里我估计每帧的重新计算也是一个大头。

试了下用shader也可以,每帧计算实际效果没啥消耗