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

Preview:

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

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 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?

Recommended