J'ai essayé d'effectuer quelques optimisations de performance OpenGL ES dans le but d'augmenter le nombre de triangles par seconde que je suis capable de rendre dans mon application iPhone, mais j'ai atteint un mur de briques. J'ai essayé de convertir mes types de données OpenGL ES de fixe en virgule flottante (par Apple's recommendation), d'entrelacer mes objets de tampon de sommets, et de minimiser les changements d'état de dessin, mais aucun de ces changements n'a changé la vitesse de rendu. Quoi qu'il en soit, je n'arrive pas à pousser mon application au-dessus de 320 000 triangles/s sur un iPhone 3G fonctionnant sous le système d'exploitation 3.0. Selon this benchmark, je devrais être capable de frapper 687 000 triangles/s sur ce matériel avec l'ombrage lisse que j'utilise. Dans mes tests, lorsque je lance l'outil de performance OpenGL ES dans Instruments par rapport au périphérique en cours d'exécution, la statistique "Tiler Utilization" atteint presque 100% lors du rendu de mon benchmark, mais "Renderer Utilization" est seulement arriver à environ 30%. Cela peut fournir un indice quant à ce que le goulot d'étranglement est dans le processus d'affichage, mais je ne sais pas ce que ces valeurs signifient, et je n'ai trouvé aucune documentation sur eux. Quelqu'un at-il une bonne description de ce que cela et les autres statistiques de l'instrument iPhone OpenGL ES représentent? Je sais que le PowerVR MBX Lite dans l'iPhone 3G est un tile-based deferred renderer, mais je ne suis pas sûr de la différence entre le Renderer et Tiler dans cette architecture.Que signifie la statistique Utilisation du carreleur dans l'instrument iPhone OpenGL ES?
Si cela aide de quelque façon que ce soit, le code source (sous licence BSD) de cette application is available si vous voulez le télécharger et le tester vous-même. Dans la configuration actuelle, il commence un petit benchmark chaque fois que vous chargez une nouvelle structure moléculaire et affiche les triangles/s sur la console.
Quelle est la taille de vos triangles? Je pense que l'une de ces statistiques est plus sur le nombre de pixels, et l'autre sur le nombre de triangles. les nombres relatifs d'utilisation changent-ils si vous zoomez de manière à ce que l'écran soit moins rempli? –
Il varie, selon le modèle que je charge, mais ils ont tendance à être assez petit. Peu importe le niveau de zoom sur le modèle, les chiffres semblent rester les mêmes. En outre, j'ai essayé de réduire la taille de la vue OpenGL à la moitié de ce qu'elle est maintenant, sans aucun effet, ce qui semblait exclure une limitation du taux de remplissage. –