zoukankan      html  css  js  c++  java
  • 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版本一致

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

  • 相关阅读:
    小程序登录java后端实现
    Lambda 表达式应用
    java8 实现List对象去重
    实现二:Map<Long, List<Long>> 存放的value 可能含有重复元素,将value 中含有重复元素的Map 重新组合
    实现一:多个List 可能含有重复元素,含有重复元素的集合重新组合
    SpringBoot整合rabbitMq实现消息延时发送
    spring 中aop 切面实战
    MySQL 使用AVG聚合函数时,保留两位小数的方法
    使用Java实现图片等其他文件的本地复制
    Java中初始化集合的方法
  • 原文地址:https://www.cnblogs.com/minggoddess/p/4707348.html
Copyright © 2011-2022 走看看