3

当前使用带有 SDL2、GLM 和 GLEW 的 VC++ 11。当我尝试做两件事时,问题源于 GLM:创建旋转矩阵,创建透视相机矩阵 (3D)。

错误是:“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 三角函数的更多信息,请参阅此页面: http: //glm.g-truc.net/0.9.4/api/a00136.html#ga4fb76e28851c9ff6653532566084e091

于 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 回答