mingw fbx sdk /浮点数精度

接下来要做一个linux下的程序了。

下载linux version     fbx sdk

tar zxvf ...gz

按照安装说明 提升权限并没什么用 还是,cannot execute binary file

感觉是版本的问题,也就是说我要用f extension bx sdk这个版本 是dll的

vs跑完用mingw 

windows + vs2013用的肯定是 febx sdk windows version

mingw 下面,据说那只是gcc而不意味着 linux所以。。。也许还是要用windows version的dll...这点我不确定。。

http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=10775847

-----------------------------------

这个问题本身是这样子的,

在把项目从linux移植到vs2013 版本之后,编出的场景数据,看起来是差不多的,但其实里面数据的排序是乱的,这就导致,显示列表和参数们对不上,

定位了一天发现,显示列表所要现实的模型块的链表,在切分自己的时候(切出一个一个块来放到末尾)

在一开始的地方切偏了三个多变形,是由于包围盒,有 偏差,进而发现,是因为浮点数精度导致的偏差,以后越拆越偏,错误累积起来,以至于整个数据都和 原来对不起来了

下面的问题就是如何解决 2013导致的54位浮点数精度了 linux是64位

我走到这步采取的方法是,在mingw里面 显示log 然后显示一小部分错误场景数据log 然后和vs2013 log对比

这个问题既不是大小端,也不是字节对齐,而是浮点数精度。

http://coolshell.cn/articles/11235.html

这篇blog也谈到了 不同平台下的浮点数精度的问题,我想我遇到的就是这个问题

https://msdn.microsoft.com/zh-cn/library/vstudio/e7s85ffb(v=vs.110).aspx

solution

别人一定想不到我是怎么解决的

我找到致命的那步运算,max=(max-min)/2+min

把这三个都放到double里面算然后转成float传过去用

这样显示列表就完全一致啦 啦啦

没有累积出来 切偏接着切偏这种问题。

因为毕竟没有真的double精度,并且其实更高精度的double其实也并没有和linux版本一致

再测试下全部场景 应该可行

原文地址:https://www.cnblogs.com/minggoddess/p/4707348.html