Se utilizzare OpenGL ES 1.1 o 2.0 dipende da cosa si desidera fare nella propria applicazione e da quanti dispositivi è necessario che siano compatibili. Tutti i dispositivi iOS supportano OpenGL ES 1.1, dove solo l'iPhone 3G S ei nuovi dispositivi (iPhone 3G S, iPhone 4, iPad e iPod touch di terza e quarta generazione) supportano OpenGL ES 2.0. Tuttavia, tutti i dispositivi iOS attualmente in vendita sono compatibili con OpenGL ES 2.0. La percentuale di dispositivi che non supportano OpenGL ES 2.0 è in calo ogni giorno. Tutti gli iPad hanno supportato OpenGL ES 2.0 dal lancio, quindi hai la garanzia di avere il supporto se scegli quel fattore di forma.
OpenGL ES 2.0 e 1.1 utilizzano condotte di rendering diverse e abbastanza incompatibili. OpenGL ES 1.1 utilizza una pipeline di funzioni fisse, in cui si inseriscono dati di geometria e texture, impostazione di illuminazione, ecc., E lascia che OpenGL gestisca il resto per te. OpenGL ES 2.0 è basato su una pipeline programmabile, in cui si forniscono vertex e frammenti di shader per gestire le specifiche del modo in cui il contenuto viene reso sullo schermo.
Poiché è necessario scrivere il proprio codice per sostituire anche le funzioni di base più semplici, l'utilizzo di OpenGL ES 2.0 per semplici applicazioni 3D può richiedere uno sforzo maggiore rispetto a OpenGL ES 1.1. Inoltre, la maggior parte delle applicazioni e annotazioni di esempio che trovi in questo articolo saranno orientate verso 1.1, quindi può essere più difficile iniziare con l'API 2.0.
Tuttavia, il fatto che sia possibile scrivere le proprie routine per gestire la geometria e le trame e il modo in cui vengono visualizzate sullo schermo significa che OpenGL ES 2.0 consente di eseguire operazioni che semplicemente non sarebbero possibili (o richiederebbero un tremendo sforzo) da fare in OpenGL ES 1.1. Questi includono effetti come l'ombreggiatura dei cartoni animati e l'illuminazione di occlusione ambientale, oltre a permetterti di fare qualcosa di interessante come scaricare il lavoro in parallelo con la GPU.
Se vi interessa vedere alcuni esempi di ciò che si può fare con OpenGL ES 2.0, il video per la classe ho insegnato su questo argomento sono disponibili on iTunes U, e ho creato due applicazioni di esempio here e here.
Quando si tratta di compatibilità cross-platform, shaders sono stati disponibili su OpenGL desktop per un po 'di tempo, in modo che tutto quello che costruire utilizzando OpenGL ES 1.1 o 2.0 dovrebbe essere abbastanza portatile al desktop.
Se è possibile eseguire il rendering desiderato in OpenGL ES 1.1, è possibile procedere in questo modo per garantire la massima compatibilità del dispositivo. Tuttavia, la maggior parte dei dispositivi iOS attualmente in uso supporta OpenGL ES 2.0 (Non riesco a trovare le statistiche al momento, ma era basato sulle unità vendute) e quel numero crescerà nel tempo. OpenGL ES 2.0 ti consente di ottenere alcuni effetti sorprendenti (vedi Epic Citadel) che possono aiutarti a distinguere la tua applicazione dagli altri là fuori.
Risposta molto dettagliata - Grazie! – Constantin
Per completare questa risposta classica e sorprendente, a questo link http://en.wikipedia.org/wiki/List_of_iOS_devices#Features scorrere verso il basso fino a OpenGL ES per una visualizzazione utile della situazione. – Fattie
@Brad Larson: 1.5 anni dopo, vorresti dare una risposta simile a quella o porterebbe in [GLKit] (http://developer.apple.com/library/ios/documentation/GLkit/Reference/GLKit_Collection/GLKit_Collection. pdf) come la scelta migliore? –