Fir*_*cer 5 c# math floating-point
我打算用c#而不是c ++(使用SlimDX)来完成我的下一个项目.
所有directX都使用浮点数,但System.Math使用双精度数.这意味着不断在浮动和双打之间进行转换.
理想情况下,我想使用浮点数编写所有代码,因为无论如何我都没有获得任何额外的精度从双打转换为浮点数...
但是我一直无法为使用浮点数的.net找到一组数学函数.我当然可以在c#中编写我自己的库,但是我更喜欢使用已经优化的现有库...
XNA 提供了几个数学常数(包括 3D 专家,如 PI/2 等)和一些具有浮点精度的高级数学函数(尽管不是三角函数)。虽然这很可能不适合您,但由于 XNA 不像 SlimDX 那样苗条,这肯定意味着 System.Math 要么实际上缺少某些东西,要么对性能的影响并不大。根据我的经验,您实际上不需要自己计算那么多,因为其中大部分是由几何类(矩阵、四元数、向量)或 GPU 本身处理的。
从这个角度来看,我会看看 SlimDX,他们提供了什么。看起来矩阵、向量、四元数(甚至 16 位浮点数)等典型的东西已经存在了。如果您缺少一些具有浮点精度的常量,只需自己创建它们(不必每次都进行转换,只需在启动时进行)。