Преобразование вектора направления в кватернионное вращение

Я могу найти тонну вопросов о превращении кватерниона в вектор направления, но не для другого пути, который заставляет меня думать, что я делаю что-то не так, но медведь со мной.

то, что я пытаюсь сделать, это просто отобразить направление направленного света с помощью модели стрелки.

направление направленного света является единичным вектором, но модели вращаются с помощью кватернионов.

Так.. Как повернуть эту модель в соответствии с направлением свет?

или я сумасшедший, и я действительно не могу этого сделать, учитывая, что у света нет положения, а у модели есть?

1 ответов


вектор направления не является определенным вращением, он по-прежнему имеет бесконечное количество возможных решений. Видите, нет никакой информации о том, как вращаться вокруг оси. Во-вторых, векторы возможны как вектор и вращение (со значимым центром), так и фактически полностью определенная матрица.

потому что в вашем случае вращение довольно бессмысленно, просто используйте вектор вверх для справки (то есть, если ваш свет не светит сверху вниз или наоборот, тогда вам нужен другой ссылка.)

Итак, возьмите поперечное произведение вектора направления D и вектора U для бокового вектора S, затем пересечьте D и S для нового Un. Тогда используйте D, Un, S как строки (или столбцы в зависимости от того, как настроено правило расчета) в качестве матрицы. Матрица к кватерниону - хорошо известная математика.