stringtranslate.com

Слерп

В компьютерной графике slerp это сокращение от сферической линейной интерполяции , введенной Кеном Шумейком [1] в контексте кватернионной интерполяции с целью анимации трехмерного вращения . Это относится к движению с постоянной скоростью по дуге большого круга единичного радиуса с учетом концов и параметра интерполяции от 0 до 1.

Геометрический слерп

У Слерпа есть геометрическая формула, независимая от кватернионов и размерности пространства, в которое встроена дуга. Эта формула — симметричная взвешенная сумма, приписываемая Гленну Дэвису, — основана на том факте, что любая точка кривой должна представлять собой линейную комбинацию концов. Пусть p 0 и p 1 — первая и последняя точки дуги, и пусть t — параметр, 0 ≤ t ≤ 1 . Вычислите Ω как угол , образованный дугой, так что cos Ω = p 0p 1 , n -мерное скалярное произведение единичных векторов от начала координат до концов. Тогда геометрическая формула будет

Симметрия заключается в том, что slerp( p 0 , p 1 ; t ) = slerp ( p 1 , p 0 ; 1 − t ) . В пределе при Ω → 0 эта формула сводится к соответствующей симметричной формуле для линейной интерполяции

По сути, траектория скольжения представляет собой сферический геометрический эквивалент пути вдоль отрезка линии на плоскости; большой круг — это сферическая геодезическая .

Наклонный вектор спрямляется до коэффициента слерпа.

Более известен, чем общая формула Слерпа, случай, когда конечные векторы перпендикулярны, и в этом случае формула имеет вид p 0 cos θ + p 1 sin θ . Полагая θ = t π /2 и применяя тригонометрическое тождество cos θ = sin( π /2 − θ ) , получаем формулу Слерпа. Множитель 1/sin Ω в общей формуле является нормализацией, поскольку вектор p 1 под углом Ω к p 0 проецируется на перпендикуляр ⊥ p 0 длиной только sin Ω .

Некоторые частные случаи slerp допускают более эффективные вычисления. Когда дугу окружности необходимо нарисовать в растровом изображении, предпочтительным методом является некоторая вариация алгоритма окружности Брезенхема . Оценка при значениях специальных параметров 0 и 1 тривиально дает p 0 и p 1 соответственно; и деление пополам, оценка при 1/2, упрощается до ( p 0 + p 1 )/2 , нормализуется. Другой особый случай, распространенный в анимации, — это вычисление с фиксированными концами и равными параметрическими шагами. Если p k −1 и p k — два последовательных значения, и если c — удвоенное их скалярное произведение (постоянное для всех шагов), то следующее значение p k +1 — это отражение p k +1 = cp kp к -1 .

Кватернионный слерп

Когда slerp применяется к единичным кватернионам , путь кватерниона отображается в путь посредством трехмерных вращений стандартным способом . Эффект заключается в вращении с равномерной угловой скоростью вокруг фиксированной оси вращения . Когда начальной конечной точкой является единичный кватернион, slerp дает сегмент однопараметрической подгруппы как группы Ли трехмерных вращений, SO(3) , так и ее универсальной покрывающей группы единичных кватернионов S 3 . Слерп дает самый прямой и кратчайший путь между конечными точками кватернионов и отображает поворот на угол 2 Ом. Однако, поскольку покрытие двойное ( q и − q соответствуют одному и тому же вращению), путь вращения может повернуться либо «коротким путем» (менее 180 °), либо «длинным путем» (более 180 °). Длинных путей можно избежать, отрицая один конец, если скалярное произведение cos Ω отрицательно, таким образом гарантируя, что −90° ≤ Ω ≤ 90° .

У Слерпа также есть выражения в терминах алгебры кватернионов, все они используют возведение в степень . Действительные степени кватерниона определяются с помощью экспоненциальной функции кватерниона , записанной как e q и заданной степенным рядом , одинаково знакомым из исчисления, комплексного анализа и матричной алгебры:

Записав единичный кватернион q в форме версора , cos Ω + v sin Ω , где v является единичным 3-вектором, и отметив, что квадрат кватерниона v 2 равен −1 (что подразумевает кватернионную версию формулы Эйлера ), мы имеем e v Ω знак равно q , а q t знак равно cos t Ω + v sin t Ω . Идентификация, представляющая интерес: q = q 1 q 0 −1 , так что действительная часть q равна cos Ω , то же самое, что и геометрическое скалярное произведение, использованное выше. Вот четыре эквивалентных выражения кватернионов для slerp.

Производная slerp ( q 0 , q 1 ; t ) по t , предполагая , что концы фиксированы, равна log( q 1 q 0 −1 ) умноженному на значение функции, где натуральный логарифм кватернионов в этом случае дает половину Трехмерный вектор угловой скорости . Начальный вектор касательной параллельно переносится к каждой касательной вдоль кривой; таким образом, кривая действительно является геодезической.

В касательном пространстве в любой точке кватернионной кривой обратная экспоненциальная карта преобразует кривую в отрезок прямой. Кривые Слерпа, не проходящие через точку, не могут преобразоваться в линии в касательном пространстве этой точки.

Кватернионные слерпы обычно используются для построения плавных кривых анимации путем имитации аффинных конструкций, таких как алгоритм де Кастельжо для кривых Безье . Поскольку сфера не является аффинным пространством , знакомые свойства аффинных конструкций могут оказаться неэффективными, хотя в остальном построенные кривые могут быть вполне удовлетворительными. Например, алгоритм де Кастельжо можно использовать для разделения кривой в аффинном пространстве; это не работает на сфере.

Двузначный slerp может быть расширен для интерполяции среди множества единичных кватернионов, [2] но при этом расширении теряется фиксированное время выполнения алгоритма slerp.

Смотрите также

Рекомендации

  1. ^ "Кен Шумейк - Дом" .
  2. ^ Пеннек, Ксавье (март 1998 г.). Вычисление среднего значения геометрических характеристик применительно к среднему вращению (отчет). ИНРИА . Проверено 19 июня 2020 г.

Внешние ссылки