J'essaie de pousser mon FPS sur l'iPhone 3G à partir de 30 fois plus haut que possible ... et je suis confronté à quelques problèmes et j'ai pensé qu'il vaudrait mieux demander conseil.Optimiser OpenGL ES sur l'iPhone et interpréter des instruments
1) Que signifient exactement les colonnes Renderer Utilization et Tiler Utilization de l'instrument OpenGL ES? Mon pourcentage d'utilisation de carreleur est extrêmement faible, et mon utilisation de Renderer a tendance à diminuer pendant l'interaction de l'utilisateur et lorsque l'application est basculée en mode paysage. J'ai remarqué que mon FPS a tendance à baisser chaque fois que la valeur d'utilisation de Renderer diminue également. Mon FPS en mode paysage est particulièrement étrange pour moi, car le mode portrait et le mode paysage utilisent la même logique de jeu, et les textures ... et le mode paysage rendent moins de vertices/triangles (certaines parties de l'interface utilisateur ne sont pas dessiné du tout en mode paysage). 2) J'ai déjà fait la plupart des optimisations recommandées dans les vidéos ngmoco/Stanford, et les seules choses que je peux faire à gauche sont de changer GLfloats en GLshorts et d'entrelacer mes sommets avec mes coordonnées de texture dans un tableau. Certains d'entre eux sont susceptibles d'avoir des effets importants sur mon FPS? C'est un jeu de sprite 2D avec beaucoup de grandes textures détaillées ...
3) Quel est un moyen plus rapide de masquer un polygone: mettre tous ses sommets aux mêmes coordonnées (essentiellement, en le réduisant à un point), ou en définissant sa valeur alpha à 0? Je suppose que c'est le premier, puisque le mixage est plus lent en général et particulièrement cher sur l'iPhone.
4) Actuellement, j'utilise 2 textures 512x512, une texture 1024x512 et une texture 256x256. J'ai demandé des conseils sur la meilleure façon de gérer cela, et on m'a dit de ne pas les combiner en 1 texture 1024x1024 à cause de problèmes de mémoire sur l'iPhone 3G. Je voudrais confirmer cela ici, parce que si je mets tout en 1 texture, je peux éradiquer avoir à appeler glBindTexture à plusieurs reprises ...