GLM: function taking degrees as a parameter is deprecated (WHEN USING RADIANS)

陌路散爱 提交于 2019-12-02 03:27:01

问题


Currently using VC++ 11 with SDL2, GLM, and GLEW. The issue is stemming from GLM when I attempt to do two things: Create a rotation matrix, create a perspective camera matrix (3D).

The error is: "GLM: perspective function taking degrees as a parameter is deprecated" despite the fact that I am passing radians (as floats) to both functions. It says I should define something like "#define GLM_FORCE_RADIANS." Is that really necessary?

Personally I use degrees for everything, but OpenGL, so having to convert back and forth (for AI movement and what not) is a pain and actually causes a spike in CPU when I have many NPCs moving.


回答1:


#define degreesToRadians(x) x*(3.141592f/180.0f)

the static part should be resolved at compile time by the compiler, just surround any degrees to glm stuff with that macro and you are done. Also add

#define GLM_FORCE_RADIANS

before including and glm headers, so that it will by default use radians instead of degrees




回答2:


Instead of manual transformation you can use

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

Or

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

For further information about glm's trigonometry functions consult this page: http://glm.g-truc.net/0.9.4/api/a00136.html#ga4fb76e28851c9ff6653532566084e091



来源:https://stackoverflow.com/questions/23945139/glm-function-taking-degrees-as-a-parameter-is-deprecated-when-using-radians

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!