2010-10-15 16 views
5

Non ho esperienza con OpenGL e ho appena iniziato a giocare con lo sviluppo di iPhone. Da Google sembra che iPhone usi un tipo speciale di opengl (openGL ES). Quali sono le lingue supportate da openGL ES? Conosco un po 'di C++ ma ormai credo che il mio C e Objective-C siano migliori del C++.OpenGL ES per Iphone

risposta

4

L'accesso a OpenGL è lo stesso che funziona con qualsiasi libreria C. Se riesci a programmare con C, sarai in grado di gestire OpenGL. Se hai familiarità con l'aggiunta di framework e librerie a un progetto Xcode, dovresti andare bene con i progetti OpenGL.

Come nota: OpenGL ES non è univoco per l'iPhone. OpenGL ES è una versione ridotta della libreria OpenGL per lavorare con la memoria più piccola e processori più lenti presenti nei dispositivi mobili. Anche altri telefoni come Android lo usano.

Una cosa positiva di OpenGL ES rispetto all'opzione OpenGL standard è che riduce notevolmente il numero di chiamate API della versione desktop di OpenGL. Sono state mantenute solo le chiamate considerate necessarie. Se esistevano modi duplicati per fare la stessa cosa, veniva rimosso un modo. Questo significa che hai meno da imparare.

La cosa negativa di OpenGL ES rispetto a OpenGL standard è che riduce in realtà il numero di chiamate API della versione desktop di OpenGL. Ancora e ancora quando cerchi come fare qualcosa in OpenGL troverai un modo interessante per farlo su un desktop ma non troverai praticamente nulla su come farlo con la versione mobile. Fortunatamente, quando gli sviluppatori di dispositivi mobili diventano più popolari, questo sarà meno problematico e già ci sono un certo numero di libri OpenGL ES (vedi Munshi).

Inoltre, non tutti gli ESRI OpenGL sono uguali. Circa OpenGL ES 2.0 e ciò che è venuto prima è tipicamente chiamato OpenGL ES 1.x. La differenza più evidente tra questi due è l'integrazione della pipeline programmabile (vertex e framment shaders). Se crei un progetto OpenGL ES di base con Xcode trovi un semplice esempio delle contorsioni che è necessario attraversare per gestire le versioni delle differenze.

Il codice dello shader è una sorta di linguaggio di programmazione C simile. Ci sono alcuni capricci ma questi sono appresi rapidamente e sono piuttosto utili.

Chiamami strano ma mi diverto a giocare con Open GL e le varianti ES. È dura, ma i premi ne valgono la pena dato che avrai accesso a un'API potente e utile. Spero che sarai in grado di superare le prime fasi di apprendimento e divertirti davvero con OpenGL.

0

Avrai voglia di lavorare con un framework se non hai esperienza OpenGL in precedenza. Ci sono 2 ho guardato:

  • SIO2 (gratuito, ma è necessario pagare una tassa di licenza, se si desidera includere in un titolo pubblicato)

  • unità (più difficile da imparare, ma apparentemente più flessibile).

Per quanto riguarda le lingue, la maggior parte sono in C o C++. Puoi mescolare Objective-C (chiamato Objective-C++) e verrà compilato bene, ma il vero problema arriverà quando mischi UIKit e OpenGL - finché non lo fai, dovresti essere tutto a posto con qualsiasi lingua tu voglia.

+0

Non sono d'accordo con la raccomandazione di un software a più livelli che in ultima analisi dipende da OpenGL come generalmente un buon consiglio per qualcuno nuovo a GL. Inoltre, il commento di mixare UIKit e OpenGL è un posto tra fuorviante ed errato senza molte ulteriori spiegazioni/contesti.Ci si aspetta che tutti gli sviluppatori OpenGL su iOS utilizzino sia UIKit che OpenGL. Non è possibile creare una superficie di disegno visibile in iOS senza utilizzare UIKit. – user501138

+0

Grazie per il feedback. Intendiamoci, ho scritto questa risposta oltre 5 anni fa ... Le cose erano un po 'diverse in quel momento. Potenzialmente non è più rilevante? – makdad