Может ли этот тип деформации изображения шевелиться на iPhone без использования openGL? - PullRequest
0 голосов
/ 22 июня 2009

У меня прямое изображение, и я хочу деформировать его волнообразно.

Исходное изображение:

прямая текстура http://img145.imageshack.us/img145/107/woodstraight.png

и я хочу, чтобы это выглядело так (кроме анимации):

изогнутая текстура http://img145.imageshack.us/img145/8496/woodbent.png

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

Возможно ли это?

1 Ответ

0 голосов
/ 22 июня 2009

К сожалению, я думаю, что это работа для OpenGL. Вы можете добиться того же эффекта в Quartz, разрезая изображение по вертикали и рисуя сегменты с различными смещениями по вертикали ... но я не думаю, что вы сможете добиться достаточно хорошей производительности, чтобы оживить его. (По крайней мере, с 1px или 2px широкими ломтиками)

Вы также можете оставить изображение неподвижным и использовать Quartz для анимации маскирующего пути, который создаст волнообразные края. Это, вероятно, не выглядело бы слишком естественным.

Насколько я знаю, Core Animation на iPhone тоже не способна сделать это. На Mac он поставляется с более продвинутыми фильтрами, но я думаю, что вы, вероятно, увидите гораздо больше подобных вещей, если бы фильтры iPhone могли это делать: -)

У OpenGL действительно есть кривая обучения, но вот что вы хотели бы сделать, чтобы добиться эффекта: Создайте плоский прямоугольник в OpenGL с несколькими вершинами вдоль его длины. Направьте камеру на прямоугольник, чтобы он выглядел плоским. Затем используйте функцию sine () для анимации вершин на месте.

Этот подход также используется для достижения эффекта ряби, и вы можете найти пример или два из них.

Извините, что принес плохие новости :-) Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...