Unigine mesh顶点坐标转换精度问题

Posted ningmouming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unigine mesh顶点坐标转换精度问题相关的知识,希望对你有一定的参考价值。

本问题虽然与Unigine引擎相关,但对其他精度问题也有参考价值。

问题:

将精细模型顶点从自身参考系的相对坐标(类似4378.95020,4561.00000,31.3887463)

转到椭球面世界坐标(笛卡尔坐标,类似-2276990.2255267254,5002705.8561162204,3235626.9292423548),

再转回自身参考系相对坐标,在这个过程中,精度丢失。

解决办法:

精细模型的顶点只支持设置float型数据,因为显卡绘制double型承受不起;

在拿出顶点的数据进行处理的过程中,始终采用double型数据进行中间转换计算,直至计算出最终结果;

将double型的计算结果截取赋值给float型的顶点,此种情况下,转换后的顶点精度符合预期。

效果图:

左:精度丢失;右:符合预期的精度

技术分享图片    技术分享图片

 

以上是关于Unigine mesh顶点坐标转换精度问题的主要内容,如果未能解决你的问题,请参考以下文章

Unity Mesh Mesh给球贴图

Three.js地球开发—3.读取坐标数据渲染生成国家轮廓Mesh

Three.js地球开发—3.读取坐标数据渲染生成国家轮廓Mesh

导出3Ds max 贴图坐标与顶点位置出错

经纬度转换成高斯投影80坐标系

关于浮点数精度的问题