2010-07-14 4 views
2

J'ai passé environ une semaine à lire toutes les informations disponibles gratuitement sur le dessin, l'animation et l'OpenGL de l'iPhone. En utilisant les exemples de dessin iOS disponibles, comme les exemples d'applications GLPaint et Quartz d'Apple, j'ai écrit quelques versions d'un outil de peinture, mais j'ai rencontré beaucoup de limitations dues au fait de ne pas savoir ce que je ne sais pas. Le quartz est facile à utiliser et rapide au départ, mais il ralentit au bout de 20 ou 30 voies en raison de la nécessité de redéfinir le contexte à chaque ajout. Le rendu des traits OpenGL semble lent en général (application GLPaint) et fait que l'interface utilisateur touche le décalage et se sent "bon marché". Une recherche dans Amazon et les forums n'a pas révélé de bonnes recommandations de livres ou de ressources sur les technologies de dessin iPhone de bas niveau qui pourraient m'aider à devenir techniquement compétent pour écrire une application haute performance avec une expérience utilisateur et une qualité visuelle aussi bonne que "Brushes". "Adobe Ideas 1.0". Je n'essaie pas d'obtenir du code gratuit, je veux apprendre et je suis prêt à payer pour des outils d'apprentissage!
Suggestions? Orientation?Rédaction d'une application de dessin de qualité "Brosses", besoin de recommandations de livres et de ressources

Edit: Je suis surpris par le peu de livres disponibles. Je fais des progrès, dessinant des chemins qui sont réactifs même quand il y en a beaucoup et qui prévoient une fonction d'annulation facile, mais je me demande toujours comment avoir une fonction d'effacement et d'annulation en même temps. Effacer supposera que la scène soit rastérisée je suppose, et ensuite annuler devra être fait en mettant en cache des captures d'écran au lieu de simplement garder une trace des chemins.

Répondre

1

Regardez dans CGLayers. Cela vous permettra de mettre en cache une partie de votre dessin et de ne pas être obligé de tout restituer à chaque fois qu'il change, mais de ne dessiner que les modifications. Vous aurez besoin de faire un peu de travail si vous voulez ajouter le support Annuler/Refaire, mais cela devrait alléger certains de vos problèmes de performance.

+0

Merci pour le conseil. J'ai fait fonctionner CGLayers pour mon image d'arrière-plan, mais je ne les ai pas utilisés pour la partie dessin car ce contenu n'est pas répété. J'ai trouvé ce lien: http://stackoverflow.com/questions/1355527/improving-finger-painting-performance et il m'a donné un bon indice sur l'amélioration de la sensibilité de l'interface utilisateur. Donc ce que je fais est d'utiliser un UView avec Quartz Paths pour dessiner la ligne en train d'être peinte, et sur touchEnded je pousse cette classe de chemin (un chemin mutable avec une variable de couleur et de taille) dans un tableau de chemins le premier qui ne se redessine qu'après la fin d'un chemin. – Langosta39

Questions connexes