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

Cesium 3Dtiles模型多边形裁剪简单整理,第1张

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

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

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

多边形裁剪的主要原理:

一、构造裁剪多边形;

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

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

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

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

中的viewPosxyz;

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

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

ArcGIS Server发布服务的方式有多种,最常用的就是通过ArcMap发布。

1、首先在打开您要发布的地图文档,将坐标系切换到3857,具体 *** 作如下:右键Layers,打开属性,切换到Coordinate System标签下,在搜索栏中搜索3857,选中WGS 1984 Web Mercator(auxiliary sphere),确定即可。

2、然后点击File->Share As->Service…,打开Share as Service窗口,如下:

3、选择Publish a service,点击下一步

4、选择ArcGIS Server连接以及设置服务名称,点击下一步,直到ServiceEditor

5、ArcGIS Server的参数非常丰富,可以适应各种需求。目前cesiumlab支持的ArcGIS Server切片必须进行如下设置:

6、在Caching中,

    Draw this map service:选择Using tiles from a cache;

    Tiling Scheme:选择ArcGIS Online/Bing Maps/Google Maps;

    Levels of Detail:默认即可;

7、在Caching->Advanced Settings->Advanced中,将Storage Format切换为EXPLODED,确定。注:该界面的Cache directory是设置切片存储路径的,请记下该路径。

8、最后点击右上角的Publish,等待几秒后d出Copying Data Server窗口,点OK,之后就是复制数据,打包,处理,生成缓存切片等过程

9、完成时将会提示Service Publishing Result

默认情况下,切片数据存储在<Cache directory>/ <mapservername>/Layers下面。

1、打开cesiumlab,切换到分发服务页面,点击添加,d出添加数据窗口

2、点击选择文件夹,选择<Cache directory>/ <mapservername>/Layers,数据名称可以随意设置,然后点击确定。

3、这时,在服务列表中会多出一条记录,通过点击服务路径可跳转至三维视图查看该数据。

至此,cesiumlab完成加载ArcGIS Server切片数据,小伙伴们快来动手试试吧!

没听过这种坐标系。但是你这个实现很简单,你plane的face有一个法向量。这是个attribute,geometry都有的假定你法向量normal=vector3(a,b,c)你中心点位置为postion=vector4(0,0,0,1)你移动距离是distance=1那么你要求的点的位置实际上

以上就是关于Cesium 3Dtiles模型多边形裁剪简单整理全部的内容,包括:Cesium 3Dtiles模型多边形裁剪简单整理、在CesiumLab中加载ArcGIS Server切片数据、如何修改cesium geometry的位置position等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10145509.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存