Часть моего кода хранит эквивалент матрицы 4x3, сохраняя положение xyz, шкалу xyz и кватернион. Фрагмент кода ниже:Матрица умножается на позиции, компоненты кватерниона и масштаба
class tTransform
{
// data
tVector4f m_Position;
tQuaternion m_Rotation;
tVector4f m_Scale;
};
Я хочу, чтобы умножить 2 из этих объектов вместе, (как будто это матрица умножения), и мне интересно, если есть более быстрый/лучший способ сделать это, чем преобразовать каждый в матрицу, умножьте этот путь, а затем извлеките результирующее положение, поворот и масштабирование снова?
Спасибо за ответ :) Я не мог не думать, что делать матрицу к четвам, четва к матрице, а также получение длины осей XYZ результирующей матрицы для новых шкал WASN» t лучший способ. Наверное, я могу пропустить масштабную часть с помощью нескольких проверок. – Hybrid
Если вы знаете лучшее решение от руки, вы можете перегрузить оператор умножения на матрицу quaternion – ted
Я думаю, что отсутствие ответов предполагает, что я нападу на свою проблему совершенно неправильно, чтобы начать с ... Вернемся к чертежной доске, я думаю! :) – Hybrid