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

这篇博客介绍了如何利用OpenGL的离屏渲染技术配合自定义片元着色器,处理凹凸多边形的裁剪问题。首先交互式绘制不规则图形并计算本地坐标,接着计算多边形边界。然后,通过离屏渲染将图形绘制到纹理图片,并在片元着色器中进行裁剪判断。根据纹理坐标和多边形范围,丢弃不在范围内的像素,实现裁剪效果。此外,还提到添加参数控制裁剪开关的灵活性。
1198

被折叠的 条评论
为什么被折叠?



