2010-06-25 15 views
5

Sto provando a spingere il mio FPS su iPhone 3G da 30 più alto possibile ... e sto riscontrando un paio di problemi e ho pensato che sarebbe stato meglio chiedere consiglio.Ottimizzazione di OpenGL ES su iPhone e interpretazione degli strumenti

1) Che cosa significano esattamente le colonne Utilità di rendering e Utilizzo piastrellista sullo strumento OpenGL ES? La percentuale di utenza di piastrellista è estremamente bassa e il mio utilizzo del renderizzatore tende a diminuire durante l'interazione dell'utente e quando l'app viene ruotata in modalità orizzontale. Ho notato che il mio FPS tende a cadere ogni volta che scende anche il valore di utilizzo del Renderer. Il mio FPS durante la modalità landscape è particolarmente strano per me, perché la modalità portrait e landscape utilizzano la stessa logica di gioco, e textures ... e la modalità landscape rende effettivamente meno vertici/triangoli da avviare (alcune parti dell'interfaccia utente non sono disegnato a tutti in modalità orizzontale).

2) Ho già fatto la maggior parte delle ottimizzazioni raccomandate nei video ngmoco/Stanford e le uniche cose che penso di poter fare sono cambiare GLfloats in GLshorts e interlacciare i miei vertici con le mie coordinate di trama in un array. Qualcuno di questi potrebbe avere grandi effetti sul mio FPS? È un gioco di sprite 2D con molte trame grandi e dettagliate ...

3) Che è un modo più rapido per nascondere un poligono: impostare tutti i suoi vertici sulle stesse coordinate (essenzialmente, riducendolo a un punto), o impostando il suo valore alfa su 0? Credo che sia il primo, dato che la fusione è più lenta in generale e particolarmente costosa su iPhone.

4) Attualmente, sto usando una trama 2 512x512, una trama 1024x512 e una trama 256x256. Ho cercato consigli su come gestirlo al meglio, e mi è stato detto di non combinarli in una trama da 1024x1024 a causa di problemi di memoria su iPhone 3G. Mi piacerebbe confermarlo qui, perché se metto tutto in 1 trama, posso sradicare dover chiamare ripetutamente glBindTexture ...

risposta

0

Al n. 4: (a) sì, l'iPhone è documentato di non occuparsi di immagini più grandi di 1024 su un lato. 1024x1024 è il limite massimo teorico, anche se potresti incontrare dei problemi se cerchi di spingere al limite.

(b) tutte le trame non rientrano in un 1024x1024; dopo che il 1024x512 e il 2 512x512 riempiono quello spazio, avrai ancora il 256x256 rimasto.