Unity3D如何把Mesh顶点转化到世界坐标系
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3D如何把Mesh顶点转化到世界坐标系相关的知识,希望对你有一定的参考价值。
参考技术A this.transform.TransformPoint(this.transform.GetComponent<MeshFilter>().mesh.vertices[0]);这样就可以了
Unigine mesh顶点坐标转换精度问题
本问题虽然与Unigine引擎相关,但对其他精度问题也有参考价值。
问题:
将精细模型顶点从自身参考系的相对坐标(类似4378.95020,4561.00000,31.3887463)
转到椭球面世界坐标(笛卡尔坐标,类似-2276990.2255267254,5002705.8561162204,3235626.9292423548),
再转回自身参考系相对坐标,在这个过程中,精度丢失。
解决办法:
精细模型的顶点只支持设置float型数据,因为显卡绘制double型承受不起;
在拿出顶点的数据进行处理的过程中,始终采用double型数据进行中间转换计算,直至计算出最终结果;
将double型的计算结果截取赋值给float型的顶点,此种情况下,转换后的顶点精度符合预期。
效果图:
左:精度丢失;右:符合预期的精度
以上是关于Unity3D如何把Mesh顶点转化到世界坐标系的主要内容,如果未能解决你的问题,请参考以下文章