cesium中精度问题

文章探讨了GIS引擎中GPU渲染场景的精度问题,特别是在使用float而非double时。提出了通过双精度转换为单精度、计算相对位置并针对不同距离优化的方法,以减小精度损失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        对于gis这种大坐标的引擎,精度问题是很关键的,特别是使用了gpu渲染场景,现在的gpu的精度都是float的,相较于double。

缺陷:

1、float是32位浮点数,布局是【1符号位+8指数位+23小数位】精度较低;

2、最大范围在cm级时为131072.00,也就是100公里的范围,相较于地球半径6,356,750米差的很远; 

        Float:比特数为32,有效数字为6-7,数值范围为 -3.4E+38 ~ 3.4E+38

        如何尽量消除上面的问题,对于基于gpu渲染的场景来说很重要;

        存在几种解决方法,参考文章1中,使用了RTC、RTE方式,这是一些常规的使用相对位置减少精度损失的方法,参考文章1中改进了RTE的方式,首先说明一下RTE就是目标位置相对于相机位置进行目标偏移,是以相机(或者眼睛)为中心的,下面主要关注这个方面。

        计算步骤如下:

        a、将目标位置P、和相机位置Q的double类型坐标转换成两个单精度float类型

               

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值