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
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
Plusieurs SDK géo pour Android…
… mais avec certaines contraintes!
OpenGL ES à la rescousse 
des développeurs!
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
Quoi faire avec 
OpenGL ES?
Apache Licence 2.0 
https://code.google.com/p/gdc2011-android-opengl/
Skybox (à la 
Google Street 
View) 
Creative Commons 
http://freezurbern.deviantart.com/art/Ocean-Skybox-402457935
Basé sur une version modifiée du code de 
Learning OpenGL ES 2 for Android (Kevin Brothaler, 
The Pragmatic Bookshelf )
Réalité augmentée + géospatial 
Sensors (capteurs)
Réalité augmentée + géospatial 
Sensors (capteurs) 
Creative commons – image Dhatfield 
http://commons.wikimedia.org/wiki/File:Utah_teapot_simple_2.png
Concepts / 
développer
Open specification 
Spécification API 
implémente 
Android Open Source Project 
OpenGL ES library
OpenGL ES dans Android
SDK, ou NDK, 
telle est la question
Android SDK Android NDK 
Java C/C++ 
Performant Performant++ 
Plus simple Plus complexe
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
Concepts: en terrain connu! 
transformation 
vertex 
projection 
rasterization 
géométrie 
RGB 
ligne 
point 
coordonnées
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
Pipeline graphique 
Creative Commons 
http://commons.wikimedia.org/wiki/File:British_Steel_pipeline,_Caldicot_Level_-_geograph.org.uk_-_689097.jpg 
Pipeline
Vertex, fragment et rasterization
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)
Pipeline simplifié 
Lecture des vertex Vertex Shader Assembler les 
primitives 
Rasterization des 
primitives Fragment Shader ... 
Frame Buffer Le rendu est fait 
sur l'écran!
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
Aller plus loin
Quelques livres
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
Merci! 
Questions?

OpenGL ES pour le développement d’applications géospatiales sur Android

  • 1.
    OpenGL ES pourle 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-ceque 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
  • 3.
    Plusieurs SDK géopour Android…
  • 4.
    … mais aveccertaines contraintes!
  • 5.
    OpenGL ES àla rescousse des développeurs!
  • 6.
    OpenGL ES enune 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
  • 7.
    Quoi faire avec OpenGL ES?
  • 9.
    Apache Licence 2.0 https://code.google.com/p/gdc2011-android-opengl/
  • 10.
    Skybox (à la Google Street View) Creative Commons http://freezurbern.deviantart.com/art/Ocean-Skybox-402457935
  • 11.
    Basé sur uneversion modifiée du code de Learning OpenGL ES 2 for Android (Kevin Brothaler, The Pragmatic Bookshelf )
  • 12.
    Réalité augmentée +géospatial Sensors (capteurs)
  • 13.
    Réalité augmentée +géospatial Sensors (capteurs) Creative commons – image Dhatfield http://commons.wikimedia.org/wiki/File:Utah_teapot_simple_2.png
  • 14.
  • 15.
    Open specification SpécificationAPI implémente Android Open Source Project OpenGL ES library
  • 16.
  • 17.
    SDK, ou NDK, telle est la question
  • 18.
    Android SDK AndroidNDK 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 terrainconnu! transformation vertex projection rasterization géométrie RGB ligne point coordonnées
  • 21.
    Géométries (primitives) qPoint q Ligne q Triangle Creative Commons OpenGL ES | Android Developers http://developer.android.com/guide/topics/graphics/opengl.html
  • 22.
    Pipeline graphique CreativeCommons http://commons.wikimedia.org/wiki/File:British_Steel_pipeline,_Caldicot_Level_-_geograph.org.uk_-_689097.jpg Pipeline
  • 23.
    Vertex, fragment etrasterization
  • 24.
    Shaders Indiquent auGPU 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é Lecturedes 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
  • 27.
  • 28.
  • 29.
    Quelques sites qKhronos 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
  • 30.