GLM: функция, принимающая градусы как параметр, устарела (ПРИ ИСПОЛЬЗОВАНИИ РАДИАНОВ)

В настоящее время используется VC ++ 11 с SDL2, GLM и GLEW. Проблема связана с GLM, когда я пытаюсь сделать две вещи: создать матрицу вращения, создать матрицу перспективной камеры (3D).

Ошибка: «GLM: функция перспективы, получающая градусы как устаревший параметр»
несмотря на то, что я передаю радианы (как поплавки) для обеих функций. Он говорит, что я должен определить что-то вроде «#define GLM_FORCE_RADIANS». Это действительно необходимо?

Лично я использую градусы для всего, но OpenGL, поэтому необходимость конвертировать туда-сюда (для движения ИИ, а что нет) — это боль и фактически вызывает скачок в CPU, когда у меня много движущихся NPC.

2

Решение

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

статическая часть должна быть разрешена компилятором во время компиляции, просто поместите все градусы в glm с этим макросом, и все готово. Также добавьте

#define GLM_FORCE_RADIANS

перед включением и заголовками glm, чтобы он по умолчанию использовал радианы вместо градусов

1

Другие решения

Вместо ручного преобразования вы можете использовать

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

8

По вопросам рекламы [email protected]