多sprite进行遮罩最佳实践要怎样做?

微信图片_20241126173011
需求如图:有装饰A, B、C,某些情况下,需要用B、C做遮罩,显示最终下面黑色A的效果。
B、C的尺寸一般不会很大(不超过300*300)

Mask有遮罩类型 Sprite_stencil,但是只能配置1张图片,如果想用多张图进行遮罩,怎样实现性能最好(内存+cpu)?

尝试借助 RenderTexture 用另外的相机渲染node(里面有B+C),然后作为Sprite的纹理用做遮罩。有个问题是RenderTexture 尺寸很大(和画布尺寸一样大)这样就比较耗内存。

地图上这种遮罩装饰可能会比较多(几十个)

请问这个需求怎样做比较好呢?

拿到顶点坐标,自己用assembler来画,但是这个方法只能裁剪当前图片,对子节点无效