接下来要做一个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版本一致
再测试下全部场景 应该可行