coco2d-x 4.0 使用ClippingNode 性能很差,有办法解决吗?

最近使用cocos2d-x 4.0做了一个项目,在画不规则遮罩的时候用了ClippingNode+DrawNode,在低端机性能比较差。只要一往ClippingNode addChild,性能就大幅降低,举个例子,加的时候20帧数,不加60帧数。之前并不知道ClippingNode绘制内容那么耗性能,以下是代码片段,希望大佬能给点优化思路。或者比如绘制多边形除了加多边形遮罩,还有什么其他不会大幅度降低性能的方案?
谢谢大佬们!
image

看你添加多少个使用 ClippingNode 的节点了,看看draw call影响大不大了。
ClippingNode 会影响自动合批,要特别小心

没有这情况吧!看你代码 多边形也没有画出来哇…

我画多边形的代码,我试了,不管画多边形还是矩形,关系不大,哪怕只是矩形,只要一往里添加内容,在低端机,帧率就下降的很快。我贴一下画多边形的代码吧。
image
以上是更新多边形的地方。

我在目标机型(一个低端测试机)添加一个ClippingNode 帧率掉10。两个就是掉20。

还真是,往里面 addchild 顶点数量 ,就增加3000+,多了估计就掉的很厉害的

一旦child数量大于0,就一下子卡的飞起,顶点数倒还是其次了。。

往里加一个元素性能就开始掉得很严重了。

建议你 不要用 DrawNode 绘画多边形 ,可以用一个单独的图片精灵节点,来做模板 例如 圆形图 方形图.这样估计会比较顺畅.

模板

大佬,这个我知道,但我这需求是遮罩会随着条件变化,比如三角形,梯形,矩形。而且各边长度还会随着时间变化,也就是说,我需求的是不定形状的遮罩。。。

不知道你 想实现啥功能的,只能说 用 DrawNode 绘制 是比较耗时

就是我需要实现一个不断改变形状的遮罩,不断改变形状我是用drawNode来做的,然后作为clipNode的遮罩,来遮住clipNode里面的内容。

解决了,用shader方式完成了。