3

現在、SDL2、GLM、および GLEW で VC++ 11 を使用しています。この問題は、回転マトリックスを作成し、遠近法カメラ マトリックス (3D) を作成しようとすると、GLM に起因します。

エラーは次のとおり です。両方の関数にラジアンを (float として) 渡しているにもかかわらず、「GLM: 度数をパラメーターとして取るパースペクティブ関数は非推奨です」 。「#define GLM_FORCE_RADIANS」のようなものを定義する必要があると書かれています。それは本当に必要ですか?

個人的にはすべてに度数を使用しますが、OpenGL を使用しているため、(AI の移動などのために) 前後に変換する必要があり、多くの NPC を移動させると実際に CPU のスパイクが発生します。

4

2 に答える 2

11

手動変換の代わりに使用できます

glm::radians(degrees) // from degrees to radians. 

または

glm::degrees(radians) // from radians to degrees. 

glmの三角関数の詳細については、次のページを参照してください。

于 2015-06-26T11:19:12.843 に答える
2
#define degreesToRadians(x) x*(3.141592f/180.0f)

静的部分はコンパイラによってコンパイル時に解決される必要があります。そのマクロで glm 要素を囲むだけで完了です。また追加

#define GLM_FORCE_RADIANS

および glm ヘッダーを含める前に、デフォルトで度の代わりにラジアンを使用するようにします

于 2014-06-04T13:47:20.053 に答える