Алгоритмы преобразования вершин OpenGL ES 2.0

Я разрабатываю iOS-приложение для деформирования изображений с помощью OpenGL ES 2.0.

Я хорошо разбираюсь в настройке, конвейере и т. д. и теперь перехожу к математике.

Поскольку мой опыт деформирования изображения нулевой, я обращаюсь за некоторыми предложениями по алгоритму.

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

opengl es image vertex map

Поиграв немного с фотошопом, я заметил, что Adobe использует немного более сложный алгоритм для марионеточной деформации, но намного более упрощенный алгоритм их стандартной деформации. Как вы думаете, что мне лучше всего подать сюда / личные предпочтения?

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

opengl es image warping

8
задан Matisse VerDuyn 19 March 2012 в 20:44
поделиться