基于maxscript编写3dsmax的工具相对较简单,语言简洁。但是在编写过程中,也出现了一些无法解决的问题。比如现在我遇到的坐标的问题:
问题:利用maxscript编写的导出插件,获取对象坐标时小数点后位数,距离越大越来小。
描述:
根本原因,官方解释为:
由于数字浮点计算的本质,距离过大或过小都会产生舍入误差。舍入误差的症状包括导航问题(缩放和平移变快或慢),不希望的视口剪切以及意外的法线翻转。下面是避免出现这些问题的一般原则:
1、确保场景大概是在原点(0,0,0)附近。
2、在离原点较远处舍入误差增加。
3、确保场景中重要细节都不小于一个通用 3ds max 单位。
我们在建三维模型的时候,注意以上三个建模原则。并且另外增加一条:
距离原点控制在999.999以内,(我通过其它方法部分修正了maxscript的这个问题,现在可以到9999.999)。