2.2椭球体基础

球是x,y,z轴的长度都相等;

椭球是x,y,z不一定相等。
如果椭球是两长一短,且两长相同,则为扁球体。短/长越小,则越扁。

月球可以认为是球体,火卫一奇形怪状。

地球wgs84椭球体属于扁球体。长半轴是赤道,短半轴是极点半径。

 

程序中处理地球形状的方法最好是采用椭球体基类,同时采用用户自定义半径。这样适应各种椭球体。

这个_oneOverRadiiSquared是用来计算大地表面法线的。具体方法如下:

在glsl上也可以计算大地表面法线

那什么是大地表面法线?

地球有两个法线,一个是地心法线,一个是大地表面法线。。

地心法线是地心到地面一点的向量;大地表面法线是该点与椭球体相切平面的法线。

可以认为是全局法线和局部法线的关系

一般,用大地表面法线,因为这是真实法线,计算经纬高所用。高度是对于局部来说的,抬头看看这个小鸟距离我有多高。

 

如果我站在一个大圆球上,一脚向下垂直踩下去,可以沿着地心法线,也是沿着大地表面法线。

然而,目前是踩在一个大鸭蛋上,一脚踩下去,将会沿着大地表面法线踩下去;而踩不到地心上,也就不在地心法线上。

 

所以,很明显,椭球体越扁,大地表面法线越偏离地心法线。

 

那么,计算高度时,为啥要用大地表面法线,而不是地心法线呢?

因为对于较高的物体,比如太空设备,沿着地心法线测量会产生较大误差。这个误差与地心法线和大地法线之间的角差别相关,角差别越大,误差越大;

那这个角差别是哪两个角的差别呢?

是纬度差别;也就是大地纬度和地心纬度的差别。

地心纬度和大地纬度如何计算呢?

地心纬度是指赤道平面和指定点地心法线的夹角。

大地纬度(地理纬度)是指赤道平面(例如,wgs84坐标系中xy平面)与该点大地表面法线的夹角。

 

而大地法线和地心法线之间角差别大约在纬度45度左右。

调试下,看看扁率对大地法线和地心法线偏离的影响。

球体时,两者重合

短轴减小时,

 

 

调试下

各种状态跳过,后续章节学习时再深入。

shader这一块后面再看

接下来是正式绘制

其它暂时不涉及到的,不进行跟踪了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值