Presto gli utenti di Android potrebbero non avere più motivi per invidiare la qualità dei giochi 3D disponibili sull’App Store di iPhone. L’ultima versione dell’Android Native Development Kit (NDK), la r3 , introduce infatti il supporto alla API grafica OpenGL ES 2.0, la stessa supportata da iPhone 3GS e Palm Pre.
Va subito detto che OpenGL ES 2.0 va a braccetto soltanto con l’ultima major release di Android, la 2.x, che fra le altre cose può contare su una rinnovata architettura grafica concepita per migliorare l’accelerazione in hardware.
Rilasciato lo scorso giugno , l’NDK permette agli sviluppatori di superare i confini della macchina virtuale Dalvik , all’interno della quale girano tutte le applicazioni scritte per Android, e accedere direttamente all’hardware sottostante per mezzo di linguaggi di programmazione nativi come C e C++.
OpenGL ES 2.0 fa ora parte delle librerie scritte in codice nativo messe a disposizione dall’NDK, e fornisce agli sviluppatori la capacità di gestire il rendering grafico per mezzo di vertex e fragment shader scritti in linguaggio GLSL .
OpenGL ES è una API libera da royalty per la programmazione di applicazioni e giochi con grafica 2D e 3D progettati per girare sui dispositivi più piccoli, come telefoni cellulari, PDA, computer di bordo, media player e console portatili. Questa specifica consiste in un sottoinsieme delle funzionalità alla base dello standard grafico OpenGL, ed include profili ottimizzati per i device più semplici e per quelli più sofisticati, dotati di una o più unità di calcolo in virgola mobile. Il pieno supporto all’hardware 3D programmabile fornito da OpenGL ES rende teoricamente possibile, per gli sviluppatori, la creazione di giochi per smartphone con grafica non dissimile da quella delle console dedicate.
Naturalmente la qualità grafica dei giochi 3D dipende anche e soprattutto dalla potenza dell’hardware: iPhone 3GS, ad esempio, è in grado di far girare titoli di un certo effetto grazie ai cavalli del suo chip grafico PowerVR SGX. Ragion per cui i giochi per Android che sfrutteranno a fondo OpenGL ES 2.0 richiederanno anche GPU adeguate.
Insieme all’NDK r3 viene fornito un programma d’esempio, chiamato hello-gl2 , che mostra come effettuare il rendering di un semplice triangolo utilizzando gli shader.
Ma i giochi non saranno la sola categoria di software a potersi avvantaggiare delle nuove librerie grafiche: Mozilla, ad esempio, le sfrutterà per ottimizzare le performance di Fennec per Android . Il supporto a OpenGL ES potrebbe inoltre aprire la strada all’implementazione su Android della API WebGL , standard nascente per la grafica accelerata su Web.
Tra le altre novità dell’NDK r3, scaricabile da qui , c’è l’inclusione di una versione più aggiornata del compilatore GCC, la 4.4.0, accreditata di generare “codice macchina leggermente più compatto ed efficiente” rispetto alla precedente versione 4.2.1.
Alessandro Del Rosso