Glm :: rotate () не работает для матрицы просмотраC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Glm :: rotate () не работает для матрицы просмотра

Сообщение Anonymous »

Я работаю над созданием матрицы представления для 3D -игрового двигателя. Это первый двигатель, который я сделал, и я не использую для OpenGL или матриц в целом. Я могу получить тот же код для работы для матрицы модели объекта, но когда я использую его для матрицы представления, все разрывается. < /P>

Код: Выделить всё

glm::mat4 getViewMatrix(Transform& camTransform) {

glm::mat4 view = glm::mat4(1.0f);
view = glm::rotate(view, glm::radians(camTransform.Rotation.x), glm::vec3(1, 0, 0));
view = glm::rotate(view, glm::radians(camTransform.Rotation.y), glm::vec3(0, 1, 0));
view = glm::rotate(view, glm::radians(camTransform.Rotation.z), glm::vec3(0, 0, 1));
view = glm::translate(view, -camTransform.Position);

return view;
}
Transform содержит 3 Glm :: Vec3 положение, вращение и масштаб. Я думал, что так будет проще по сравнению с использованием Glm :: lookat () .
Основная проблема, с которой я столкнулся, заключается в том, что первые два вращения (независимо от того, являются ли они x, y или z), но последнее вращение работает только на глобальной оси, а не на местной оси. Мне действительно нужна помощь, потому что я смотрел по всему Интернету, и все они используют обзор без каких -либо установленных позиций или вращений и используют математику, которая меня смущает. Спасибо

Подробнее здесь: https://stackoverflow.com/questions/795 ... iew-matrix
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»