用于矩阵和矢量操作的快速,可移植的c ++数学库

时间:2014-10-05 01:21:54

标签: math matrix vector

我有自己的游戏引擎,用opengl和c ++编写。我也有自己的数学库用于矩阵和矢量操作。我一直怀疑我的数学库的性能,所以我最近决定搜索一些流行的数学库,这是许多游戏/图形开发人员使用的。我很惊讶我找不到任何东西。

stackoverflow上的人们在类似的帖子中建议了GLM和Eigen库,所以我做了一些性能测试。我将两个矩阵4x4乘以1000000倍,结果如下:

GLM: 4.23 seconds
Eigen: 12.57 seconds
My library: 0.25 seconds

我对这些结果感到惊讶,因为我对乘法矩阵的实现来自维基百科。我检查了glm和eigen的代码,我发现有很多typedef,断言和其他类型检查,不必要的代码,这会大大降低性能。

所以,我的问题是: 你知道任何FAST数学库有很好的游戏/图形用途API吗?我需要以下功能:创建平移,旋转,投影,矩阵*矩阵,逆,看,矩阵*向量,四元数等...

1 个答案:

答案 0 :(得分:2)

  

我检查了glm和eigen的代码,我发现有很多typedef,断言和其他类型检查,不必要的代码,这会大大降低性能。

您确定使用更高的编译器优化开启了所有这些基准吗?

而不是使用Debug设置?

另一种选择也可能来自Google的MathFu http://google.github.io/mathfu/