J'ai une animation échelle de gris 32 cadre d'un diamant qui explose en morceaux (soit 32 images PNG @ 1024x1024)iOS: la lecture d'un cadre par image animation échelle de gris dans une couleur personnalisée
mon jeu se compose de 12 couleurs différentes , donc j'ai besoin d'effectuer l'animation dans n'importe quelle couleur
ce que je crois exclut tous les cadres d'Apple, il exclut également beaucoup de code public pour animer image par image dans iOS.
Quels sont mes chemins de solution potentiels?
ce sont les meilleurs SO liens que j'ai trouvé:
- Faster iPhone PNG Animations
- frame by frame animation
- Is it possible using video as texture for GL in iOS?
que la dernière montre qu'il est tout simplement peut-être possible de charger une image en une texture GL chaque image (il le fait depuis la caméra, donc si j'ai tout en mémoire, ça devrait être encore plus rapide)
Je peux voir ces options (voir la liste plus paresseux premier, le plus optimisé dernier)
Option A chaque cadre (avec la permission de CADisplayLink), charger l'image pertinente du fichier dans une texture et d'afficher cette texture
Je suis assez sûr que ce soit stupide, sur l'option B
pré-charge l'option B toutes les images en mémoire puis comme ci-dessus, que nous vient charger m mémoire plutôt que de fichier
Je pense que cela va être la solution idéale, quelqu'un peut-il donner le pouce en l'air ou les pouces vers le bas? Précharger tous mes fichiers PNG en une seule texture GL de la taille maximale, créant ainsi une texture Atlas. chaque image, définissez les coordonnées de la texture sur le rectangle de l'Atlas pour cette image.
alors qu'il s'agit potentiellement d'un équilibre parfait entre l'efficacité de codage et l'efficacité des performances, le principal problème ici est la perte de résolution; Sur les anciens appareils iOS, la taille maximale de la texture est 1024x1024. si nous sommes en train de bourrer 32 images dans ceci (vraiment c'est la même chose que le bachotage 64), nous serions à 128x128 pour chaque image. si l'animation résultante est proche de plein écran sur l'iPad cela ne va pas à pirater
l'option D au lieu de chargement dans une seule texture GL, charge dans un tas de textures De plus, nous pouvons presser 4 images en une seule texture à l'aide des quatre canaux
Je déteste la quantité de codage fastidieux requise ici. Mon RSI commence à picoter même en pensant à cette approche
Je pense que j'ai répondu à ma propre question ici, mais si quelqu'un a déjà fait cela ou peut voir le chemin, merci de répondre!
liés: http://stackoverflow.com/questions/6683822/ios-applying-a-rgb-filter-to-a-greyscale-png –