没懂 
这种shader最省时间 
这 「可以」 是一个几何问题
问题可以转换一下
两个相交圆,如何获取其重叠区域的多边形
- 判断相交情况 :首先需要确定两个圆是否相交,并且相交于两点。如果不相交或只有一个交点(相切),那么重叠多边形就不存在或者退化为一个点。
- 计算交点 :如果相交于两点,精确计算出这两个交点的坐标。
- 确定圆弧段 :重叠区域的边界由两个圆上各的一段圆弧组成。我们需要确定是哪一段。
- 离散化圆弧 :将这两段圆弧分别用一组连续的点(即多边形顶点)来近似。
- 连接点集 :将两个圆弧离散化后得到的点集,按照正确的顺序连接起来,形成一个封闭的多边形。
这个确实是个办法,但是没法拓展开来
我想实现的是填充任意封闭区域那种
理论思维是这样,代码中怎么弄呢?计算机又不会判断哪块重叠了几次
-
你可以用一个二维数组代表你的画布,2048x2048,如果你是希望操作纹理,可以考虑创建一个 RenderTexture,也是操作像素
-
画一个多边形后,将标记数组中对应位置的值+1
-
画一个xxx形后,将标记数组中对应位置的值+1
-
n次后,你就知道哪些地址的值大于1
当然,第2、3步的画,不一定是画,你可以只是标记,具体看你需求吧
好的,像素级操作 
我记得以前好像有别的引擎可以实现,不知道是Egret还是Laya
实在不行就用canvas画布,这个应该可以
收到
用shader模板缓冲感觉可以
好简洁的回答,我研究一下
复杂了吧, 分2个情况, 圆+圆, 圆+方,
圆+圆 2个arc 闭合
圆+方 1个arc+多个线条 闭合
好处是维护简单, 缺点性能自己想办法
两个三阶贝塞尔曲线交叉部分,阁下如何处理 
看数量多不多, 如果只有1个, 就把其他的做一个rt, 这个图片1个rt, 2个rt 算 alpha-cut,
rt1.a>0 && rt2.a>0
gl_FragColor.color = xxx
比如一个画图游戏, 老图层一个rt 相机a, 新图层一个rt 相机b, 2个rt 一个shader 里处理 相交, 花了新的就把上一次的设置layer=相机a 就好了, 代码量也不多
要导出图片会不会就不合适了
多个截图相机就好了 , 截图相机平时隐藏需要的时候一帧 readpixel 保存

