Ce type de déformation d’image tremblante peut-il être effectué sur un iPhone sans utiliser OpenGL?

StackOverflow https://stackoverflow.com/questions/1025262

  •  06-07-2019
  •  | 
  •  

Question

J'ai une image droite et je veux la déformer à la manière d'une vague.

Image d'origine:

texture droite http://img145.imageshack.us/img145/107/woodstraight .png

et je veux qu'il ressemble à ceci (sauf animé):

texture courbée http://img145.imageshack.us/img145/8496/woodbent .png

Je n’ai pas encore abordé la courbe d’apprentissage de openGL, donc si je peux le faire avec Core Animation, ce serait formidable.

Est-ce possible?

Était-ce utile?

La solution

Malheureusement, je pense que c'est un travail pour OpenGL. Vous pouvez obtenir le même effet dans Quartz en découpant l'image verticalement et en dessinant des segments avec différents décalages verticaux ... mais je ne pense pas que vous seriez en mesure d'obtenir une performance suffisante pour l'animer. (Au moins, avec des tranches de 1 px ou 2 px de large)

Vous pouvez également laisser l’image immobile et utiliser Quartz pour animer un tracé de masquage qui créerait les contours ondulés. Cela ne semblerait probablement pas trop naturel, cependant.

Autant que je sache, Core Animation sur iPhone n’est pas non plus capable de le faire. Sur le Mac, certains filtres plus avancés sont fournis, mais je pense que vous verriez probablement beaucoup plus de choses comme celle-ci si les filtres de l'iPhone le faisaient: -)

OpenGL a certes beaucoup à apprendre, mais voici ce que vous voudriez faire pour obtenir cet effet: créez un rectangle plat dans OpenGL comportant plusieurs verticales le long de sa longueur. Dirigez la caméra vers le rectangle afin qu'il apparaisse à plat. Utilisez ensuite une fonction sine () pour animer les vertices en place.

Cette approche est également utilisée pour obtenir l’effet d’eau ondulante. Vous pourrez peut-être en trouver un exemple ou deux.

Désolé de vous annoncer de mauvaises nouvelles :-) J'espère que cela vous aidera!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top