В настоящее время используется VC ++ 11 с SDL2, GLM и GLEW. Проблема связана с GLM, когда я пытаюсь сделать две вещи: создать матрицу вращения, создать матрицу перспективной камеры (3D).
Ошибка: «GLM: функция перспективы, получающая градусы как устаревший параметр»
несмотря на то, что я передаю радианы (как поплавки) для обеих функций. Он говорит, что я должен определить что-то вроде «#define GLM_FORCE_RADIANS». Это действительно необходимо?
Лично я использую градусы для всего, но OpenGL, поэтому необходимость конвертировать туда-сюда (для движения ИИ, а что нет) — это боль и фактически вызывает скачок в CPU, когда у меня много движущихся NPC.
#define degreesToRadians(x) x*(3.141592f/180.0f)
статическая часть должна быть разрешена компилятором во время компиляции, просто поместите все градусы в glm с этим макросом, и все готово. Также добавьте
#define GLM_FORCE_RADIANS
перед включением и заголовками glm, чтобы он по умолчанию использовал радианы вместо градусов
Вместо ручного преобразования вы можете использовать
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