Cesium的ComputeCommand及影像投影
这方面已经有文章进行说明了,详见cesium 笔记-影像的重投影原理和ComputeCommand - 知乎,在这里我就不从原理上进行解释了。
本文从计算角度说下细节,同时我开发了一个测试程序,放在gitee,可以玩一玩。ReprojectWebMercator: 仿照Cesium 的ReprojectWebMercator,可视化测试。
1、只有部分数据需要重投影
影像必须是墨卡托坐标系,且只有包含北纬85度到90°,或者包含南纬85°到90°的数据才需要重投影。
tile.rectangle.north > WebMercatorProjection.MaximumLatitude ||
tile.rectangle.south < -WebMercatorProjection.MaximumLatitude
2、如果不重投影,会出现什么效果
如果不重投影,北极、南极会出现怪异效果,比如下面这个图是我无心得到的,主要是没有准确设置投影矩阵。
3、全球重投影前后差异
下面这张图,我用颜色表示空间的扭曲程度。这里采用的是全球尺寸的进行的投影差异图。
其中第2个颜色图是1比1的,表示原图。第一个图是重投影后的。
颜色从低往上逐步加深,表示从南到北图像扭曲的变化。
经对两图差值进行对比,可以看到北极30~60,南极30~60之间具有明显的差异效果。
选择一幅墨卡托的图,可以感受起重投影的差异
4、为啥中间不需要重投影
这不是不需要重投影,而是差异太小了。下面的是拿取北纬0到30°的数据,几乎看不大形变的差异。
而到了北方,比如北纬60~85°,那就有比较明显的差异