#c #glm-math
#c #glm-math
Вопрос:
Мне нужно найти изменения, которые произошли между двумя временными интервалами t1 и t2, и у меня есть glm::mat4
для них обоих (m1, m2), в настоящее время я использую следующий код (который не работает):
glm::mat4 changes ( const glm::mat4amp; m1 , const glm::mat4amp; m2 ){
return m1 / m2 ;
}
Комментарии:
1. Можете ли вы более подробно описать возникшую у вас ошибку (компиляция, выполнение)? Я вижу оператор для разделения матрицы в glm API.
2. Это ошибка выполнения
3. Пожалуйста, предоставьте более подробную информацию в вопросе: Каков результат и чего вы ожидаете в результате?
4. ‘Operator /’ возвращает «m1 * glm::inverse(m2)», что не является поэлементным разделением. Если вы ищете поэлементное разделение, вам придется закодировать его вручную. С другой стороны, может ли простое вычитание матрицы быть тем, чего вы действительно хотите? В зависимости от того, что вы подразумеваете под «найти изменения», это может быть даже более подходящим, чем деление, которое имеет потенциал для деления на ноль.
5. Если вы хотите проверить наличие изменений, я предлагаю использовать вычитание. Если вы хотите синхронизировать свой объект с твердым телом, почему бы просто не изменять новую матрицу для объекта в каждом кадре?
Ответ №1:
Хорошо, после моих исследований я нашел решение, я использую glm::decompose
, а затем я управляю данными так, как я хочу, чтобы получить предыдущий результат.