Как выполнить быстрое наклонение текстуры Catmull-Rom с помощью линейных интерполяций?



Я читал некоторые статьи, в которых вводится быстрая интерполяция третьего порядка с использованием GL_LINEAR.




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



Оба они упоминают об ограничении этого метода. Для отфильтрованная текстура с GL_LINEAR, следующее отношение выполняется только если 0




A*f (i, j) + b*f (i+1, j) = F (i+b/(a+b), j)




Где f-исходные данные изображения, а F-линейно интерполированная текстура OpenGL.



Вот в чем проблема. [1] упоминает, что этот метод также может быть применен к бикубическому Катмуллу-Рому.



Метод также может быть адаптирован к интерполяционным фильтрам, таким как сплайны Catmull-Rom


Тем не менее, это очевидно, что с весовой функцией Catmull-Rom, содержащей отрицательные части, условие (0


Существует ли специальный способ применить метод в [1] и [2] к интерполяции Catmull-Rom?
Или мне нужно принести все 16 текселей для Catmull-Rom?

590   1  

1 ответ:

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

Полином Катмулла-Рома p(t) может быть записан как

p(t) = 0.5 [ w0(t) * p0 + w1(t) * p1 + w2(t) * p2 + w3(t) * p3]

Где

w0(t) = -t + 2*t^2 - t^3;
w1(t) = 2 - 5*t^2 + 3*t^3;
w2(t) = t + 4*t^2 - 3*t^3;
w3(t) = -t^2 + t^3;

И p0, p1, p2, p3 являются выборочными значениями функции.

Для B-сплайна вы группируете вместе первые два члена, а именно w0(t) * p0 и w1(t) * p1, и вторые два члена, а именно w2(t) * p2 и w3(t) * p3. Для сплайна Catmull-Rom вы группируете вместе w0(t) * p0 и w3(t) * p3 и w1(t) * p1 и w2(t) * p2. Это легко проверить, даже с помощью График Matlab показывает, что для этого выбора выполняется условие b/(a+b). Таким образом, идея может быть использована также в интерполяции Catmull-Rom. Однако для случая Catmull-Rom мне кажется, что нет никакого возможного расширения до последнего шага, поскольку ни (w0(t) + w3(t))/(w0(t) + w1(t) + w2(t) + w3(t)), ни (w1(t) + w2(t))/(w0(t) + w1(t) + w2(t) + w3(t)) не удовлетворяют указанному вами условию.

Comments

    Ничего не найдено.