美文网首页
Cesium 3Dtiles模型多边形裁剪简单整理

Cesium 3Dtiles模型多边形裁剪简单整理

作者: 周五蛋碎一地 | 来源:发表于2021-11-06 20:52 被阅读0次

    快三年了,在简书写了四篇文章,关于Cesium的基本都是水一下,不是不想写,一是没时间,二来确实比较懒,关于Cesium已经一年多没有看过了,最多也就关注一下官网的更新内容,对于Cesium深入了解还真没有下功夫。

    最近公司业务调整,手头的业务也停掉了,只剩下维护了,也没有继续待着的意义了,趁着换工作的空,整理一下以前抄过、请教过、写过的一些东西吧,不确定能写多少,就简单记录一下吧。

    Ceisum本身有一个clipPlane可以进行裁剪,但是不支持多边形裁剪,想要支持多边形裁剪也要费一番功夫。

    多边形裁剪的主要原理:

    一、构造裁剪多边形;

    二、将构造多边形的定点归化到模型局部坐标系,并获取模型Rectangle,记录并传递给片元着色器;

    三、将多边形渲染到到一张构造的纹理上,给多边形一个绘制的颜色,并将纹理赋值给片元着色器;

    四、在顶点着色器中把从attribute获取到的定点传递给片元着色器,如

    gl_Position = czm_projection*u_modelViewMatrix* viewPos; //投影矩阵*模型视图矩阵*顶点坐标

    中的viewPos.xyz;

    五、在片元着色器中,根据(四)中传递过来的顶点,判定该顶点是否在(二)中的rectangle中,若在,则计算该顶点在(三)中纹理的uv坐标,用texture2D(texture,uv)获取当前顶点的color值,若不为空,则继续,若为空则discard并返回。

    通过以上步骤就可以实现以多边形为边界的模型裁剪。

    相关文章

      网友评论

          本文标题:Cesium 3Dtiles模型多边形裁剪简单整理

          本文链接:https://www.haomeiwen.com/subject/fssjzltx.html