[3.5.2] UIOpacity.opacity = 0, DrawCall不会减少

这个问题从3.4.2开始就无法利用透明度0来减少DC
在ScrollView中会导致需要频繁开关节点, 对效能上有肉眼可见的影响

请问该问题有后续解决方案吗?
例如官方可以提供一个设置让开发者自行选择是否开启透明度0剔除渲染
或提供类似UIOpacity的元件, 让开发者需要时自行挂载?

相关issue:

我其实也在想为啥超出了视界.DC也不会减少.
这个在pageview上体现非常明显.

官方的考量应该是避免在渲染流程中需要额外计算不可见剔除吧
这点得看官方要怎么设计了…

这个需要的计算量太大了,估计很难实现
毕竟js这种超低性能语言,再加上微信小游戏这种超低性能环境,简简单单遍历一个数组都能成为性能瓶颈,让他去计算每个节点是否在屏幕中可见,那在拖动屏幕,移动摄像机这种操作的时候会很卡

现阶段我只要求能透明度0降DC
这个在2.4就有实现的功能, 用起来也不卡顿
单论2D性能2.4说不定还略胜3.4一些

跟进一下官方回覆
@jare

我是不可见的部分active=false,是可以降低dc,透明度确实不行。

对的 emm

请官方关注一下这问题
@jare

markmarkmarkmarkmarkmarkmarkmark

如果透明度0不能减drawcall,需要用active false 来代替的话,那相对于2.x 的ccc,这样的替换方式,性能上是否已经优化为接近的方案呢

显然是没有的, active开和关会额外做很多事
官方难道都不回应该问题吗?

改成虚拟列表吧

同问这个问题

layer 设置为 none 摄像机不可见就行了

1赞