type
Post
status
Published
date
Apr 9, 2023
slug
globe3d/5
summary
详细推导Cesium中的Cartographic和Cartesian3之间的转换过程
tags
教程
理论地球
category
教程
icon
password
学完本章你将了解:
- 地理切片格式上添加web墨卡托投影的影像
假如你已经了解一下知识:
这一篇文章是对Cesium原理篇:5最长的一帧之影像 - fu*k - 博客园 (cnblogs.com)文章中的最后部分多重纹理叠加的详细说明。

在后土地球仓库支持web墨卡托投影的切片瓦片用到了该技术,对该技术有一定的了解,费了一番功夫,为方便后人方便理解,特此解释说明。
houtu
catnuko • Updated Oct 30, 2024
由于GeographicTilingScheme和WebMercatorTilingScheme是两套瓦片坐标系(下面讲地形瓦片默认是GeographicTilingScheme的切片规则,影像瓦片是WebMercatorTilingScheme的切片规则),按照地形瓦片的坐标值请求的影像瓦片是不能刚好覆盖到地形瓦片上的。可能会出现下面这种情况。可能除了影像瓦片PA(假设是PA左下角部分)外,还需要PB(影像瓦片),PC(影像瓦片)才能完整渲染地形瓦片PA上影像,否则,PB,PC和地形瓦片PA相交的部分就没任何纹理了。

因此,渲染一个地形瓦片,需要获取三个影像瓦片,并将影像PA,PB,PC的部分贴到地形瓦片PA的相应位置上才算OK。
在Cesium中,请求了一个地形瓦片的网格数据,三个影像瓦片,渲染该地形瓦片时,将三个影像瓦片同时传入片元着色器(GlobeFS.glsl)中。
在片元着色器中怎么才能把影像的部分贴到地形瓦片的相应位置上呢?
片元着色器内获取像素点都是通过采样器用一个纹理坐标采样图片,如果有一个图片刚好贴合地形瓦片上,只需要用顶点着色器传入的uv值采样即可。但现在不能完全贴合,那么采样PC和PA相交部分时,如果给uv坐标一个偏移,使得uv坐标刚好位于PC瓦片的需要的部分,采样出的像素值就正式我们需要的。
假如PA,PC的宽高为400x400,片元着色器中的某一像素为,纹理坐标为,位于PAPC相交区域,为了获得正确的像素值,需要将移动到的位置,在纹理PC对映的像素值刚好是需要的像素值。因此我们只需要计算出偏移值向量传入片元着色器即可。

- 作者:南山无物
- 链接:http://www.supony.top//article/globe3d/5
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章

