我有自己的游戏引擎,用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吗?我需要以下功能:创建平移,旋转,投影,矩阵*矩阵,逆,看,矩阵*向量,四元数等...
答案 0 :(得分:2)
我检查了glm和eigen的代码,我发现有很多typedef,断言和其他类型检查,不必要的代码,这会大大降低性能。
您确定使用更高的编译器优化开启了所有这些基准吗?
而不是使用Debug设置?
另一种选择也可能来自Google的MathFu http://google.github.io/mathfu/