Введение

Сферическая линейная интерполяция в компьютерной графике

В компьютерной графике slerp – это сокращение от сферической линейной интерполяции, представленной Кеном Шомейком в контексте интерполяции кватернионов для анимации 3D-вращений. Она описывает равномерное движение по дуге большого круга единичного радиуса, заданное конечными точками и параметром интерполяции в диапазоне от 0 до 1.

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

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

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

Путь slerp, по сути, является сферическим геометрическим эквивалентом пути вдоль отрезка прямой на плоскости; большой круг – это сферическая геодезическая. Более известным, чем общая формула slerp, является случай, когда конечные векторы перпендикулярны, в этом случае формула принимает вид p0cos θ + p1sin θ. Подставляя и применяя тригонометрическое тождество, получаем формулу slerp. Фактор 1/sin Ω в общей формуле является нормализацией, поскольку вектор p1, образующий угол Ω с вектором p0, проецируется на перпендикуляр к p0 с длиной, равной только sin Ω. Некоторые частные случаи slerp допускают более эффективные вычисления. При отрисовке круговой дуги в растровом изображении предпочтительным методом является некоторая вариация алгоритма круга Брезенхема. Вычисление при специальных значениях параметра 0 и 1 тривиально дает p0 и p1 соответственно; а бисекция, вычисление при , упрощается до (p0 + p1)/2, после нормализации. Другой частный случай, часто используемый в анимации, – это вычисление при фиксированных конечных точках и равных параметрических шагах. Если pk−1 и pk – два последовательных значения, а c – удвоенное их скалярное произведение (постоянное для всех шагов), то следующее значение, pk+1, является отражением .

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

Когда slerp применяется к единичным кватернионам, траектория кватерниона отображается в траекторию 3D-вращений стандартным образом. Эффект заключается во вращении с постоянной угловой скоростью вокруг фиксированной оси вращения. Если начальной конечной точкой является единичный кватернион, slerp задает сегмент однопараметрической подгруппы как группы Ли 3D-вращений SO(3), так и ее универсальной накрывающей группы единичных кватернионов S3. Slerp дает наиболее прямой и короткий путь между своими конечными кватернионными точками и соответствует вращению на угол 2Ω. Однако, поскольку накрытие двойное (q и −q соответствуют одному и тому же вращению), траектория вращения может проходить либо "коротким путем" (менее 180°), либо "длинным путем" (более 180°). Длинные пути можно избежать, изменив знак одной из конечных точек, если скалярное произведение, cos Ω, отрицательно, тем самым обеспечивая условие −90° ≤ Ω ≤ 90°. Для slerp также существуют выражения, основанные на кватернионной алгебре, использующие возведение в степень. Действительные степени кватерниона определяются через экспоненциальную функцию кватерниона, записываемую как eq и задаваемую степенным рядом, хорошо известным из математического анализа, комплексного анализа и линейной алгебры: записывая единичный кватернион q в версорной форме как cos Ω + v sin Ω, где v — единичный вектор из трех компонент, и отмечая, что квадрат кватерниона v2 равен −1 (что подразумевает кватернионную версию формулы Эйлера), получаем , и интересующее нас тождество — , так что действительная часть q равна cos Ω, что совпадает с геометрическим скалярным произведением, использованным выше. Ниже приведены четыре эквивалентных кватернионных выражения для slerp. Начальный касательный вектор переносится параллельно вдоль всей кривой; следовательно, кривая действительно является геодезической. В тангентном пространстве в любой точке кватернионной кривой slerp обратная экспоненциальная карта преобразует кривую в отрезок прямой. Кривые slerp, не проходящие через данную точку, не преобразуются в прямые в тангентном пространстве этой точки. Кватернионные slerp часто используются для построения плавных кривых анимации, имитируя аффинные конструкции, такие как алгоритм де Кастельжо для кривых Безье. Поскольку сфера не является аффинным пространством, известные свойства аффинных конструкций могут не выполняться, хотя построенные кривые могут быть вполне удовлетворительными. Например, алгоритм де Кастельжо можно использовать для разделения кривой в аффинном пространстве; это не работает на сфере. Двузначный slerp можно расширить для интерполяции между множеством единичных кватернионов, но при этом теряется фиксированное время выполнения алгоритма slerp.