| Q&A |
Joachim Pouderoux et Jean-Eudes Marvie
Projet IPARLA (LaBRI – INRIA Futurs)
Université Bordeaux 1
03 mars 2005
|
| |
|
| Q1 |
Brève
présentation de GLUT|ES. |
| A1 |
GLUT|ES
est une adaptation de la bibliothèque GLUT (OpenGL
Utility Toolkit, mise au point par Mark Kilgard pour
son livre OpenGL ‘RedBook’) pour les ordinateurs
embarqués. Celle-ci est pour l’instant compatible
avec les systèmes de type Windows Mobile ou Windows
PC. GLUT|ES fonctionne donc sur des terminaux de type PocketPC,
SmartPhone et PC. Un port Symbian est prévu. GLUT|ES
est basés sur la bibliothèque de rendu 3D dédiée
à ces appareils : OpenGL|ES.
GLUT
est une API multi plateforme permettant au développeur
de créer et de gérer facilement une fenêtre
de rendu OpenGL, de gérer les interactions avec l’utilisateur
(clavier, souris ou stylet...), de créer des menus
etc. GLUT|ES (cf. Fig. 1) est basée sur une implémentation
OpenSource de GLUT appelée freeglut (initiée
par Pawel W. Olszta).
Pour
en revenir à OpenGL|ES, c’est une API de bas
niveau définissant un ensemble de fonctions permettant
de tracer des primitives géométriques 3D à
l’écran. OpenGL|ES est en réalité
une version allégée d’OpenGL ayant pour
but le rendu de scènes 3D de manière logicielle
ou matérielle sur des machines à ressources
(vitesse, mémoire, batterie, taillé d’écran)
limitées.
|
| |
|
| Q2 |
Qu'apporte
GLUT|ES pour les développeurs d'applications 3D pour
équipements embarqués ? |
| A2 |
GLUT|ES
apporte tout ce qu’apporte originalement GLUT pour les
développeurs d’applications 3D sur des stations
de travail, à savoir une bibliothèque de fonctions
de haut niveau permettant de créer très rapidement
des applications 3D munies d’une interface utilisateur.
Le principal avantage est la portabilité : l’intérêt
de GLUT en général est son rôle d’interface
entre le système d’exploitation et l’application.
Il offre un ensemble de fonctions permettant de masquer au
développeur le système de fenêtrage sous-jacent
(cf. Fig. 2) ainsi que la gestion des évènements.
L’application peut donc être compilée,
de manière transparente, sur les différentes
plates-formes compatibles avec GLUT|ES.
|
| |
|
| Q3 |
Actuellement,
la plupart des PDAs ne disposent pas d'accélération
3D matérielle. Quel type de performances peut-on attendre
de ces terminaux? |
| A3 |
Les
performances varient fortement en fonction de la bibliothèque
de rendu utilisée. Il existe plusieurs implémentations
logicielles d’OpenGL|ES. La plus aboutie à ce
jour semble être celle d’Hybrid, appelée
Gerbera. D’autres tentatives existent cependant, respectant
plus ou moins la spécification originale d’OpenGL|ES
établie par Khronos : Vincent, projet open-source
utilisant un mécanisme d’optimisation basé
sur du code généré ou encore klimt, open-source
également mais peu fidèle aux spécifications
de Khronos.
Au
sein de notre laboratoire, nous avons mis au point une plate-forme
PC client/serveur, appelée Magellan, permettant d’effectuer
un streaming de contenu 3D. L’interface de la partie
cliente de Magellan, dédiée aux terminaux mobiles,
a été créée très rapidement
et sans optimisations spécifiques sur Windows Mobile
à l’aide de GLUT|ES (cf. Fig. 3). A titre d’exemple,
avec l’implémentation OpenGL|ES d’Hybrid,
nous parvenons à visualiser des scènes texturées
d’environ 5.000 triangles à 15 fps sur un Toshiba
e800, et 6 fps sur un SmartPhone SPVe200. Ces résultats
sont assez stupéfiant et permettent d’imaginer
de vrais jeux complexes en 3D. |
| |
|
| Q4 |
Quel
type d'applications (jeux, e-learning...) peuvent être
développées à l'aide de GLUT|ES ? |
| A4 |
Le
champ d’application de GLUT|ES n’est vraiment
pas limité. GLUT offre un ensemble de fonctions de
bases pour gérer un contexte de rendu OpenGL et la
gestion des interactions. Le reste est à la charge
du développeur de l’application. A titre
d’exemple, la plateforme Magellan nous permet de visualiser
différents types d’environnements virtuels à
travers des réseaux sans fil. |
| |
|
| Q5 |
Est-ce
que GLUT|ES peut être utilisé pour développer
des contenus sur SmartPhone ? |
| A5 |
Absolument.
L’avantage de la plate-forme SmartPhone est qu’elle
est basée sur Windows Mobile comme les PDA de type PocketPC.
Le code écrit pour PocketPC est donc compatible SmartPhone.
Nous avons pu constater que nos applications compilées
pour PocketPC fonctionnaient sur un SmartPhone, équipé
du même type de processeur, sans même avoir à
les recompiler (cf. Fig. 5). |
| |
|
| Q6 |
Sous
quelle licence est diffusé GLUT|ES ? |
| A6 |
La
licence de GLUT|ES est souple. Le code source peut être
utilisé, copié, modifié et diffusé
sans restriction. Il ne peut cependant pas être revendu. |
| |
|
| Q7 |
Quelles
sont les interactions possibles entre GLUT ES et Java, et JSR184
? |
| A7 |
GLUT|ES
est développé en langage C. Dans cette mesure,
l’interaction avec Java et JSR184 n’est pas évidente
et nécessiterait l’écriture d’un wrapper.
Cependant, l’intérêt d’une telle interaction
ne serait pas réellement justifiée car le langage
Java est un langage de haut niveau et multi plate-forme. La
société Hybrid propose une API : The Mobile
3D Graphics (M3G) permettant d’interfacer OpenGL|ES pour
JSR184. Précisons cependant que les systèmes embarqués
disposent de peu de puissance (e.g. pas de FPU) et qu’il
est à ce titre beaucoup plus performant (à l’heure
actuelle) d’utiliser du code compilé optimisé
que du bytecode java. |
| |
|
| |
|