Plusieurs API cartographiques sont disponibles pour les développeurs Android. Toutefois, dans le cadre de certains projets, il n’est pas toujours possible de les utiliser, et ce, pour différentes raisons (ex : type de licence, absence d’une fonctionnalité donnée, etc.). Il est heureusement possible de développer soi-même une application cartographique en ayant recours à OpenGL ES (Open Graphics Library for Embedded System), une API de rendu graphique 2D et 3D disponible sur Android. Cette présentation consiste en une introduction à OpenGL ES. Différents points seront abordés, tels que les scénarios d’utilisation, les concepts de base propres à OpenGL ES, les principales classes, etc. Des exemples avec des données géospatiales seront aussi présentés. Enfin, des références utiles seront fournies pour ceux et celles qui désirent débuter avec l’API OpenGL ES sur Android.
JMap 6.0 : une solution complète et évolutive pour l'intégration, la diffusio...
OpenGL ES pour le développement d’applications géospatiales sur Android
1. OpenGL ES pour le développement
d’applications géospatiales sur Android
Mathieu Ouellette
Développeur / spécialiste en géomatique
ouellette.mathieu@gmail.com
Vision Géomatique | Novembre 2014
2. Plan
q Qu’est-ce que OpenGL ES et pourquoi l’utiliser?
q Exemples
q Quelques concepts
q Développer avec OpenGL ES sur Android
q Références utiles
But: simplement présenter OpenGL ES sur Android
et son potentiel pour la géomatique
6. OpenGL ES en une diapo
Quoi? Open Graphics Library for Embedded Systems
Pour faire quoi? Rendu graphique (3D)
Qui? Khronos Group
Appareils cibles? Téléphones, tablettes et autres appareils portables
Utilisé par qui? Industrie du jeu vidéo, etc.
Très fort potentiel pour la géomatique
18. Android SDK Android NDK
Java C/C++
Performant Performant++
Plus simple Plus complexe
19. OpenGL ES 1, ou 2,
ou 3, telle est la question
En date du 3 novembre 2014
25,3%
74,7%
Creative commons – Android Developers Dashboard
http://developer.android.com/about/dashboards/index.html#OpenGL
20. Concepts: en terrain connu!
transformation
vertex
projection
rasterization
géométrie
RGB
ligne
point
coordonnées
21. Géométries (primitives)
q Point
q Ligne
q Triangle
Creative Commons
OpenGL ES | Android Developers
http://developer.android.com/guide/topics/graphics/opengl.html
24. Shaders
Indiquent au GPU comment effectuer le rendu graphique
Vertex Shader Fragment Shader
Génère la position
finale de chaque
vertex
Génère la couleur
finale de chaque
fragment (modèle
RGB)
Programmés en GLSL (OpenGL Shading Language)
25. Pipeline simplifié
Lecture des vertex Vertex Shader Assembler les
primitives
Rasterization des
primitives Fragment Shader ...
Frame Buffer Le rendu est fait
sur l'écran!
26. Classes clés
GLSurfaceView
Implémentation de
GLES20 GLSurfaceView.Renderer
Creative Commons
OpenGL ES | Android Developers
http://developer.android.com/training/graphics/opengl/touch.html
29. Quelques sites
q Khronos Group
www.khronos.org/opengles/
q API guides de Android
developer.android.com/guide/topics/graphics/opengl.html
q Training sur Android
developer.android.com/training/graphics/opengl/index.html