Upload
visiongeomatique2014
View
189
Download
3
Embed Size (px)
DESCRIPTION
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.
Citation preview
OpenGL ES pour le développement d’applications géospatiales sur Android
Mathieu OuelletteDéveloppeur / spécialiste en géomatique
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 rescoussedes 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.0https://code.google.com/p/gdc2011-android-opengl/
Skybox (à la Google Street View)
Creative Commonshttp://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 Dhatfieldhttp://commons.wikimedia.org/wiki/File:Utah_teapot_simple_2.png
Concepts / développer
Android Open Source ProjectOpenGL ES library
Open specificationSpécification API
implémente
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
74,7%
25,3%
En date du 3 novembre 2014
Creative commons – Android Developers Dashboardhttp://developer.android.com/about/dashboards/index.html#OpenGL
Concepts: en terrain connu!
vertex
rasterization
géométri eRGB
ligne
point
coordonnées
projection
transformation
Géométries (primitives)
q Point
q Ligne
q Triangle
Creative CommonsOpenGL ES | Android Developershttp://developer.android.com/guide/topics/graphics/opengl.html
Pipeline graphique
Crea
tive
Com
mon
sht
tp:/
/com
mon
s.wik
imed
ia.o
rg/w
iki/F
ile:B
ritish
_Ste
el_p
ipel
ine,
_Cal
dico
t_Le
vel_
-_ge
ogra
ph.o
rg.u
k_-_
6890
97.jp
g
Pipeline
Vertex, fragment et rasterization
Shaders
Vertex Shader Fragment ShaderGé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)
Indiquent au GPU comment effectuer le rendu graphique
Pipeline simplifié
Lecture des vertex Vertex Shader Assembler lesprimitives
Rasterization desprimitives Fragment Shader ...
Frame Buffer Le rendu est faitsur l'écran!
Classes clés
GLSurfaceViewImplémentation deGLSurfaceView.RendererGLES20
Creative CommonsOpenGL ES | Android Developershttp://developer.android.com/training/graphics/opengl/touch.html
Aller plus loin
Quelques livres
Quelques sites
q Khronos Groupwww.khronos.org/opengles/
q API guides de Androiddeveloper.android.com/guide/topics/graphics/opengl.html
q Training sur Androiddeveloper.android.com/training/graphics/opengl/index.html
Merci! Questions?