Cesium
文章平均质量分 64
refineiks
这个作者很懒,什么都没留下…
展开
-
Cesium实例化绘制原理分析
Cesium在 1.97 版本之前是有一个 ModelInstanceCollection 类用于完成模型的实例化绘制的,但是从 1.97 版本(2022 年 9 月 1 日发布)开始这个类被移除了。官方的说法是这个类和新的 Model (负责模型渲染的类) 架构不适配了,由于 ModelInstanceCollection 这个类一直是私有接口,并没有通过文档暴露给用户,所以 Cesium 团队就给直接移除了,说是后续再考虑加回来,但是没说啥时候。原创 2024-04-06 17:48:07 · 1667 阅读 · 0 评论 -
【Cesium】在着色器中计算片元的高程
但是逐片元去计算它们对应的椭球半径在着色器里不好实现,在CPU中计算相机位置处的椭球半径(下图中的 earthRadius )来近似地作为相机观察范围内所有片元对应的椭球半径从性能和实现难度上都是更优解。2、在着色器中做如下转换:深度值 -> 相机坐标 -> 世界坐标,最后用片元世界坐标的模 - 相机位置对应的地球半径即可,glsl 代码如表1所示。怎么在着色器中计算片元的高程呢?1、在CPU中计算相机所在位置对应的地球半径,作为 uniform 变量传入着色器中:相机世界坐标的模 - 相机的高程。原创 2024-01-30 21:19:05 · 1986 阅读 · 0 评论 -
基于径向模糊的体积光在Cesium中的应用
当空间中包含足够稠密的光散射介质(例如气体分子和气溶胶)时,光源透过遮挡物的缝隙投射的光线打在空气中的尘埃上,产生散射进入到人眼中,这些光线看起来像是一道一道的光柱,被称为体积光。在图形渲染中,体积光对画面的质感能起到很大的提升作用。体积光的渲染主要有和3 种方式。BillBoard贴片是把带有光柱效果的图片叠放在原始场景之上,实现方式不够灵活,换另一个场景就得另一组图片;径向模糊用后处理方式实现,效果不错,性能开销较小;光线追踪效果最好,算法较为复杂,性能消耗相对也较大。原创 2023-12-14 19:55:00 · 2855 阅读 · 7 评论 -
Cesium中三维热力图的实现思路
4、将热力图显示范围的多边形几何体进行三角细分(Cesium提供了三角细分相关的算法,PolygonGeometry.fromPositions方法的granularity参数) ,三角细分后才有足够多的顶点来拉伸不同的高度,产生三维的效果,不然只有多边形的几个角点。对应的是一张正常的热力图纹理,一张灰度纹理。2、使用同一份数据通过heatmap.js绘制两张二维热力图, 一张正常的热力图,一张用灰度表示的热力图(只有黑白两种颜色的渐变)1、普通热力图的绘制基于开源库。,将数据组织成它需要的格式。原创 2023-11-07 18:18:21 · 2789 阅读 · 2 评论 -
Cesium相机姿态角的数值和相机朝向的关系
相机水平观察,pitch为0;垂直看向地面,pitch为 -PI / 2;Cesium中相机姿态角 heading、pitch、roll 的。相机顺时针旋转,roll增加;逆时针旋转,roll减少;的关系,如下图所示(PS用的不熟,直接手画了)相机朝正北方向,heading为0;原创 2023-11-04 08:23:47 · 1726 阅读 · 0 评论 -
Cesium箭头线实现原理分析
表5-1和5-2的代码定义了箭头的斜边。getPointOnLine函数的返回值 slope * (x - p0.x) + p0.y 就是把当前处理的片元拉到斜边上,而且还是拉到对称的斜边上。Cesium在内部做了哪些操作,使得我们通常认为的如图2所示的一根带宽度线变为如图3所示的箭头线的呢?做了一个小技巧,把箭头区域和两侧一部分区域剔除,留下s值为1的区域作为非箭头区域,其余区域s均为0。,s + t 为1的区域,也就是图7和图10中s和t为1的区域被赋予颜色,其他区域都为透明。原创 2023-10-17 18:14:34 · 2454 阅读 · 0 评论 -
Cesium BaseLayerPicker加载逻辑分析
随后这个数组会传入BaseLayerPickerViewModel的构造函数,在给selectedImagery属性赋值时用的是第一个元素,默认加载的是第一个ProviderViewModel对应的数据源。在BaseLayerPicker的界面上不同影像和地形的数据源选项顺序是定死了的。最后,遍历所有的ProviderViewModel,按照category属性分类,并返回所有数据源的属性给界面。那么如果想调整数据源的顺序(改变默认加载的数据源),或者新增自己的数据源,怎么办呢?原创 2023-10-09 08:58:45 · 1263 阅读 · 0 评论 -
Cesium相机初始化位置调整
Cesium的相机默认初始化在大洋彼岸上空,可以通过修改默认的视口矩形来改变相机的初始位置。原创 2023-09-28 21:00:00 · 1683 阅读 · 0 评论 -
Cesium结合nginx突破浏览器的最大并发请求数限制
基于Cesium开发三维数字地球应用时,往往会面对大数据量的模型、影像等切片数据,由于文件数很多,正常情况下加载速度会受到并发请求数的限制,假如遇到请求阻塞的情况,那么后面文件的请求甚至会一直挂起(pending),影响正常的加载逻辑。这样模型数据和影像数据的加载就互不影响(不会因为在同一个域下,影像数据阻塞导致模型数据一直挂起),影像数据也通过“伪装”成两个域突破了浏览器最大并发请求数的限制。当一个请求 url 的协议、域名、端口三者之间的任意一个与当前页面 url 不同即为跨域(不同的域)。原创 2023-09-30 21:00:00 · 1806 阅读 · 0 评论