以前的裁剪,压平,水印是直接重写了Shader部分的源码,改的地方很多,而且性能也差。这个是采用了另外一种方案,通过类似Cesium自身写入shader方法实现的效果,改动的源码更少。shader在外面自己实现,更方便后期维护,修改和增加其他的一些shader。
不过其实这样也有性能瓶颈,因为毕竟是通过判断点是否在多边形内实现裁剪的,如果点太多,那么性能会变差。有一种实现方式性能更好,那就是纹理映射。最近比较忙,有时间了试试。
计算顶点坐标时,要区分3dtileset的upAxis轴向,轴向不同,顶点的计算也不同,可能是xy, xz,yz都有可能。裁剪做好后,压平,水印原理都一样的