原生的ClipingPlane不支持凹凸多边形裁剪,使用RTT技术将绘制多边形渲染到图片,在将图片贴回多边形,不在多边形范围内的数据从片元着色器中discard掉
1.交互绘制不规则图形,获取点序列,计算为本地坐标;
2.计算不规则多边形的边界范围;
3.将交互绘制内容通过离屏渲染到一张图片上,设置图片颜色,这里需要使用自定义绘制命令来实现离屏渲染,得到离屏渲染的图片;
4.将图片及多边形范围传递到数据的片元着色器脚本中;
5.顶点着色器中将数据坐标传递到片元着色器,后续判断中使用;
6.片元着色器脚本中判断,处于传入范围中的点计算该点在图片中的纹理坐标,获取对应传入图片的颜色值,如果为3中设置的颜色则为在多边形范围内,discard掉;
范围外裁剪加一个参数控制即可