2014-10-05 32 views
3

我有我自己的遊戲引擎,它是用opengl和C++編寫的。我也有我自己的矩陣和矢量操作數學庫。我一直對我的數學圖書館的表現產生懷疑,因此我最近決定搜索一些受到許多遊戲/圖形開發人員使用的流行數學圖書館。我很驚訝我找不到任何東西。用於矩陣和矢量操作的快速,便攜式,C++數學庫

在stackoverflow上的人建議GLM和Eigen庫在類似的職位,所以我做了一些性能測試。我乘100萬倍兩個矩陣的4x4,這裏是結果:

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

我對這些結果感到驚訝,因爲我實現矩陣相乘的是從維基百科。我檢查了glm和eigen的代碼,發現有很多typedef,斷言和其他類型檢查,不必要的代碼,這些代碼會大大降低性能。

所以,我的問題是: 你知道任何FAST數學庫,有很好的API用於gamedev/graphics目的嗎?我需要的功能如下:創建翻譯,旋轉,投影,矩陣*矩陣,逆,看,矩陣*矢量,四元數等...

+0

犰狳是一個選項。 – stanekam 2014-10-05 01:28:34

+0

不是很有幫助,但任何需要它的人通常都會自己寫。或者它只是像遊戲引擎這樣的大型框架的一部分。它確保你知道你在做什麼:)我記得Carmack說他通過編寫新的矩陣和向量代碼開始每個新項目。 – starmole 2014-10-05 13:43:23

回答

2

我檢查了glm和eigen的代碼,有很多類型定義,斷言和其他類型檢查,不必要的代碼,這會大大降低性能。

您確定已經使用更高的編譯器優化ON完成了所有這些基準嗎?

而不是例如使用調試設置?

另一種選擇是Google的MathFu。
http://google.github.io/mathfu/