Vous êtes sur la page 1sur 49

BENNANI Omar

Rapport de stage effectu du 01/04/2009 au 01/10/2009


Dans la Socit :

OKTAL Meudon

Rapport de stage de fin dtudes :


Analyse et amlioration du rendu visuel
Master 2 Pro Imagerie et Multimdia
Anne 2008/2009
De luniversit Paul Sabatier (Toulouse III)

Matre de stage : Millet Guillaume


Tuteur de stage : Mathias Paulin

OKTAL

Table des matires


Table des matires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Remerciements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Introduction gnrale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1 OKTAL, un acteur majeur de la simulation. . . . . . . . . . . . . . . .

1.1 Prsentation de la socit OKTAL . . . . . . . . . . . . . . . . . . . . . . .

1.2 Secteurs d'activits rpartis en quatre niches . . . . . . . . . . . . . . . .

1.3 Les principales rfrences par domaine . . . . . . . . . . . . . . . . . . .

10

1.4 Le simulateur SCANeRII . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

2 Travaux raliss. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

2.1 Analyse des performances des vhicules . . . . . . . . . . . . . . . . . .

15

2.2 Ralisation de scnarios pour des tests de performances . . . . . . .

19

2.3 Analyse dun dfaut visuel . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

2.4 Test de performance sur le plugin Sol7. . . . . . . . . . . . . . . . . . . .

27

2.5 Conception et cration dun module autonome de la plateforme de


simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

2.6 Travaux effectus sur le Plugin Mersive . . . . . . . . . . . . . . . . . .

29

2.7 Cration du module Virtual Tracker . . . . . . . . . . . . . . . . . . . . . .

31

2.8 VBO et Display List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34

2.9 Amlioration du rendu visuel . . . . . . . . . . . . . . . . . . . . . . . . . .

36

3 Conclusion / Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

Annexes /Bibliographie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

Remerciements
Avant tout dveloppement sur cette exprience professionnelle, il apparat opportun de commencer
ce rapport de stage par des remerciements, ceux qui mont beaucoup appris au cours de ce stage,
et mme ceux qui ont eu la gentillesse de faire de ce stage un moment trs profitable.
Aussi, je remercie Guillaume MILLET, mon matre de stage qui ma form et accompagn tout au
long de cette exprience professionnelle avec beaucoup de patience et de pdagogie, Aldo TEXIER,
mon responsable qui m'as souvent soutenu ainsi que Franois SAIDI pour qui j'ai eu l'occasion de
travailler plusieurs fois .
Enfin, je remercie lensemble des employs dOKTAL pour les conseils quils ont pu me prodiguer
au cours de ces six mois.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

Introduction gnrale
Au cours des six mois de stage au sein de la socit OKTAL, ditrice de progiciel de simulation de
conduite, j'ai pu mettre en uvre les connaissances techniques acquises durant mon cursus
universitaire Paul Sabatier, et ce dans le domaine du rendu temps rel.
Le but principal de ce stage est l'analyse de la chaine de rendu ainsi que la mise en vidence des
bottleneck afin d'optimiser le rendu visuel.
La premire phase de travail fut la familiarisation avec l'environnement de travail :

l'environnement physique, avec les diffrents niveaux de dploiement (recherche et


developpement, support, administration) .

L'environnement logiciel , avec l'utilisation des diffrents modules du simulateur


SCANeRII.

La phase suivante, le dveloppement proprement parler, tait constitue de plusieurs projets :

Analyse des performances des vhicules

Analyse d'un dfaut au niveau du visuel dans l'optique de trouver des solutions pour
amliorer ce dernier.

Conception et cration d'un module autonome de la plateforme de simulation en reprenant et


optimisant le coeur visuel.

Amliorer la qualit du rendu ( Ombres, clairage de la scne, HDRR).

Temps de chargement des scenes 3D.

J'ai t sollicit sur dautres projets ne faisant pas parti directement de mon sujet de stage mais qui
ont eu un apport constructif :

Travail sur le plugIn Mersive

Ralisation d'un module de virtual Tracker (simuler la calibration d'une camera).

Aprs une prsentation de l'entreprise, puis du logiciel, nous dtaillerons ces diffrents projets.Nous
nous pencherons finalement sur un bilan.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

1 OKTAL, un acteur majeur de la simulation


1.1 Prsentation de la socit OKTAL
Fililale du groupe SOGECLAIR, spcialis dans l'ingnierie de haute technologie, OKTAL et sa
filiale OKTAL SE en constituent le Pole d'activit Simulation.
Fond en 1989, OKTAL est un acteur majeur de la simulation, qui intervient aussi bien en tant que
matre d'oeuvre de simulateurs complets qu'diteur de logiciels de simulation.Compose de 130
salaris, la socit est implante Toulouse (sige social ), Meudon et Aix en Provence. Elle
dispose aussi d'une filiale au Japon. Elle atteint en 2008 un chiffre d'affaire de 9,911684 millions
d'euros.
Fort de ses implantations en France et de son rseau de partenaires l'international, OKTAL reste
l'coute de ses clients pour mieux comprendre leur besoin et les assister dans l'exploitation de ses
produits. Son exprience et sa maitrise technologique, lui a permis d'laborer une gamme complte
de produits performants et prennes assortie d'une offre de services (support technique,
developpements spcifiques, formation , maintenance ).
Le maintien d'un niveau de satisfaction client lev est une condition majeur de sa russite. A ce
titre, son systme qualit, certifi ISO 9001 depuis mars 1997, favorise la conformit des produits
livrs et le respect des dlais et des prix convenus.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

1.2 Secteurs d'activits rpartis sur quatre niches


OKTAL se concentre sur quatre niches de marchs en proposant ses solutions de simulation ddies
l'tude et la formation :

FERROVIAIRE

DEFENSE
&
SECURITE

AUTOMOBILE
&
VEHICULES TERRESTRES

AERONAUTIQUE
&
SPATIAL

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

Ferroviaire
La croissance conomique, la drgulation du trafic, luniformisation des rglementations diverses,
linnovation technologique, laugmentation des niveaux de scurit et des exigences
environnementalestels sont les dfis du dveloppement durable des transports ferroviaires. Ces
enjeux sont lorigine dune complexit et dune sophistication accrue des systmes de
signalisation et du matriel roulant.

Dans ce contexte de mutation du secteur ferroviaire, OKTAL adresse les 4 segments du march
suivants :

La formation la conduite

La formation lexploitation

Lingnierie

Ltude et la recherche

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

Automobile
Notre march sinscrit dans lensemble des moyens de transport terrestres routiers pour des
applications civiles ou militaires savoir : lautomobile, le camion, le bus&tramway, les vhicules
blinds de transport ou de combat.

Lindustrie automobile est un secteur en forte croissance mais contrainte une innovation
permanente portant tout autant sur le processus de production (entreprise tendue ou virtuelle) que
le produit lui-mme (vhicule communicant, aides la conduite pour le confort et la scurit,
rduction du ple de dveloppement).

En complment, le besoin de formation des conducteurs notamment dans un cadre professionnel


augmente fortement compte tenu :

du poids important des accidents de la circulation qui induit une lgislation de plus en plus
stricte (directive 2003/59/EC en Europe)

des contraintes dexploitation ncessitant une utilisation toujours plus efficiente des
vhicules (nouvelles fonctionnalits, conduite rationnelle, dure de vie)

Dans ce contexte o les solutions de simulation sont de plus en plus pertinentes et ncessaires,
OKTAL adresse 3 segments:

Lingnierie des vhicules

La recherche sur lamlioration des moyens de transport (scurit, dveloppement durable)

La formation et la sensibilisation des conducteurs privs et professionnels

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

Aronautique et spatial
Le secteur de laronautique poursuit sa rnovation et sort progressivement de la crise ne des
attentats de 2001.
A ce titre, les industriels de laronautique et de lespace prparent lavenir en consacrant 15% de
leur chiffre daffaires la recherche, la technologie et au dveloppement de nouveaux produits.
Dans ce contexte o les solutions de simulation sont de plus en plus ncessaires, OKTAL adresse
principalement quatre segments :

La gestion du trafic arien

La formation civile

La formation militaire

Les tudes & recherche pour la conception et la mise au point de systmes

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

Dfense et scurit
Les forces armes et de scurit sont confrontes des contextes oprationnels fluctuant en fonction
de la situation gopolitique et des menaces.
En complment, les systmes rels sont de plus en plus complexes et performants notamment par
leur capacit fonctionnelle propre et les interconnexions entre les diffrents niveaux de
commandement.
Enfin, leur usage, hors contexte doprations, doit tre optimis dans un souci daugmenter leur
dure de vie et de rduction du cot de maintenance.

Dans ce contexte, o la place des systmes de simulation devient prpondrante, OKTAL adresse
principalement 3 segments :

Les moyens dtudes technico-oprationnelles pour la dfinition et la mise au point des


systmes de dfense ainsi que leur doctrine demploi

Linstruction et lentranement au tir sur diffrents types darmes (armes lgres, artillerie,
vhicules blinds et chars)

Linstruction et lentranement au combat urbain dans un contexte de maintien de la paix ou


de lutte contre le terrorisme.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

10

1.3 Les principales rfrences par domaine


Ferroviaire
Rotem :
Simulateur de formation la conduite du KTX2
Network Rail:
Simulateur de conduire pour la formation ERTMS
Stadler :
Simulateur de conduite rplque pour les conducteur FLIRT
SNCF :
Rnovation du simulateur rplique EUROSTAR
Profession ASCT
RATP :
Microsimulateur pour la formation
Aronautique & spatial
Arospace :
GAIA : plateforme de simulation interoprable pour le transport arien
AIRBUS :
Pacakge de simulation FWC
DGA :
Hostil/Equipier pilot Hlicoptre
Rnovation du simulateur d'essai du Mirage 2000D
Snecma Service :
Ralisation d'un outil de gestion des cours et de modules de formation
Automobile & Vhicules terrestres
Volvo :
Rnovation du simulateur de conduite Poid lourd SCOOP
Robotiker :
Logiciel SCANeRII pour simulateur de conduite HWIL
CTAG :
Simulateur de conduite automobile avec plateforme dynamique
DGA :
Simulateurs dynamiques SISPEO
Dfense & Scurit
DGA:

Simulateur d'entrainement aux tirs pour l'ERC 90


tude Technico-Oprationnelle sur le combat urbain
Sensurprys : simulateur de combat dans un environnement urbain
Simulateur d'observation de Tirs d'artillerie SOTA 2G

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

11

1.4 Le simulateur SCANeRII


1.4.1 Prsentation
SCANeRII est un progiciel de simulation de conduite, utilis pour l'tude de l'ergonomie des
vhicules, la recherche et le dveloppement du trafic routier, ainsi que l'tude du comportement
humain et la formation des conducteurs.
SCANeRII publi et promus par OKTAL, a t dvelopp par OKTAL et par le groupe Vehicles
Simulation and Perception Resarch de RENAULT. Il est compos d'une gamme complte de
modules fonctionnels conus pour la simulation de conduite. Ces modules communiquent via un
rseau Ethernet (et utilisent un protocole de communication commun).
On peut voir la page suivante l'architecture de SCANeRII, cependant je ne prsenterai cidessous que les modules qui on t indispensables mon stage.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

12

1.4.2 Processus et Modules


Le processus DEAMON (Disk And Execution MONitor) organise toute la communication entre les
diffrents ordinateurs utiliss, ainsi une fois lanc sur un ordinateur celui ci peut communiquer avec
l'ordinateur Central.
Le processus SUPERVISOR permet de charger les diffrentes configurations et permet de lancer les
diffrents modules.
Le module VISUAL utilise l'API OpenSceneGraph (OSG) qui est un ensemble doutils
multiplateformes pour la cration denvironnements 3D temps-Rel. Cette API qui repose sur le
principe des Arbres de Scne est crite en langage C++ et OpenGL.
MICE

Supervisor
Outil principal de gestion des
modules : Dmarrer / Arrter

MAP
Visualisation 2D de
l'environnement.

Interface de conception des scnarios:


- choix de la carte
- insertion de vhicules
- dfinir les conditions initiales
- criture de rgles et de taches

Protocole de Communication Ethernet de SCANeRII

VISUAL
Visualisation 3D de la
simulation

Recorder
&
RecorderMG

Weather_CT
Ce module permet de modifier la
mto :

Ce module permet
de sauvegarder un
scnario avec son
traffic.

Omar BENNANI

2008/2009

Traffic

Scenario

Calcule les
mouvements et
les actions des
vhicules
autonomes.

Ce module
permet
l'excution de
snarios
construits
dans MICE.

HeadTracker
Ce module est un
traker de
mouvement de la
tte

Universit Paul Sabatier

OKTAL

13

1.4.3 Structure d'tats


Chaque module obit une structure d'tat qui dfinit ses diffrentes tapes de lancement et d'arrt
(par exemple, l'tape de chargement LOAD sera surcharge par tous les modules qui participent la
simulation).
De plus, la plupart des fonctionnalits dpendent du statut du module dans lequel elles sont mises
en uvre.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

14

2 Travaux effectus
Avant de nous pencher sur les diffrentes missions effectues durant ce stage, il est opportun
d'voquer les diffrents outils mis disposition.
Du cot matriel, un Ordinateur dont les capacits sont performantes ainsi que deux crans ont t
mis disposition.
Du cot logiciel, j'ai pu travailler sous Visual Studio 2005 ainsi que sous QT designer, et je
disposais d'une large palette de librairies indispensables pour raliser mon stage (telle que les
librairies QT, les librairies OSG...).
Le simulateur SCANeRII tait accessible par rseau, cependant pour plus de performance et de
stabilit, l'excutable ainsi que les diffrentes datas ont t installes sur ma machine.
Nanmoins je n'ai reu le code source du VISUAL de SCANeRII qu'aprs avoir pass 2 mois en
entreprise, de ce fait une grande partie du travail durant ces deux mois reposait principalement sur
l'analyse des vhicules, ainsi que la ralisation de scnarios pour les futurs tests.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

15

2.1 Analyse des performances des vhicules


Problmatique
L'objectif est d'analyser les vhicules en dressant un tableau de statistiques OSG (nombre de
polygones, nombre de vertices, nombre de matrices) afin de comprendre pourquoi certains
vhicules sont plus couteux en Frame Rate que d'autres.

Outils mis en uvre et dmarche


Une tape importante avant de commencer ce projet a t la documentation sur OpenSceneGraph,
ce qui m'as permis de dcouvrir deux commandes / programmes intressants :

osgviewer qui permet d'afficher un objet .osg .flt ou .ive

osgconv qui duplique un fichier avec les paramtres suivants -t X, Y, Z (qui permettent de
faire une copie du fichier avec une translation de l'objet).

tant donn que mon matre de stage tait absent durant mes deux premires semaines, la premire
initiative a t dcrire 3 fichiers (.bat) :

Le premier duplique le vhicule N fois en translatant chaque fois l'objet

Le second affiche tous les vhicules d'un rpertoire

le troisime supprime les N vhicules qui ont t dupliqus.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

16

Cette dmarche a pu permettre la ralisation des premiers tests, cependant cette solution avait
plusieurs dfauts :

Elle est gourmande en mmoire partir d'un fichier .ive N fichiers .ive

Elle utilise OpenSceneGraph 1.2 alors que le visuel de SCANeRII repose maintenant sur
du OpenSceneGraph 2.8.

L'installation d'OpenSceneGraph 2.8 se fait par compilation des sources, cette tape a t assez
complique car ma maitrise de Visual Studio 2005 ntait pas encore au point. Une fois le travail
ralis j'ai dcid par moi mme d'crire un petit tutoriel titre personnel.
Une fois les outils en mains, la mise en place viewer ainsi cre (PerfView) devais rpond aux
exigences suivante :

forcer le niveau de dtails (LOD) au maximum

donner des paramtres l'excutable suivant en option : --nbr X Y Z o X est le nombre de


vhicules suivant l'axe x, Y est le nombre de vhicules suivant l'axe y et Z qui est le nombre
de vhicules suivant l'axe z.

A partir d'un seul vhicule le dupliquer afin de l'afficher plusieurs fois en optimisant l'arbre
de scne (voir Schma 1):
o On charge une fois notre objet .ive qui sera notre father_Node (contenant toute la
gomtrie)
o On le rattache un nouvel arbre (groupe) root
o On va crer des Noeuds transform_Node lis au father_Node et portant juste une
transformation de position. On les ajoute ensuite au root.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

17

Rsultats
Effectuer les tests pour tous les vhicules de la base de donnes, avec les mmes conditions :

Aucun autre logiciel lanc en parallle

Dsactivation de la synchronisation verticale de la carte graphique afin d'avoir les vritables


frames Rate.

Charger un grand nombre de vhicules (64 dans notre cas) afin de supprimer tout bruit qui
va nous fausser les rsultats.

Faire l'affichage en plein cran

Rcuprer les valeurs la position initiale pour chaque vhicule et dresser un tableau.

Une fois les rsultats obtenus (voir Annexe A) il s'avre que le frame Rate dpend normment
du nombre de Drawables, plus celui ci est important plus le frame Rate est faible :

De plus la diffrence de frame rate entre certain vhicule est vraiment importante par exemple:

64 Citren C2 avec un frame rate de 329 fps (frame par secondes)

64 Audi A3 avec un frame rate de 58 fps.

La diffrence entre les deux est trop importante.


A ce moment la l'ide tait de pouvoir comparer la structure de ces deux vhicules en observant leur
construction. Pour cela un outil gratuit est disponible sur internet: il s'agit dOsgDirector disponible
sur le site dorihalconfw.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

18

A l'aide de cet outil on peu affirmer les remarques suivantes :

les vhicules dont le frame rate est important on une structure du type :
GroupeGeodeGomtryStateSetMaterial (comme par exemple la C2)

les vhicules dont le frame rate est faible on un structure avec de nombreuses Geodes
(comme par exemple la Audi TT)

Citroen C2

Audi TT

Conclusion
Avec mon matre de stage, une demande aux graphistes (qui se trouvent Oktal Toulouse) de
restructurer les vhicules sur le modle de la C2 t formule.
Une semaine aprs, nous avons reu tous les vhicules restructurs. Les tests sur ces nouveaux
vhicules (voir les rsultats en Annexe B) ont confirm nos hypothses : de meilleures
performances avec un Frame Rate entre 134 et 270.
Durant cette mission j'ai pu apprendre de nouvelles connaissance sur
 La cration de projet sous Visual Studio 2005
 La difficult concernant les tests de performances et leurs importances (comment interprter
des rsultats, quoi correspondent ces rsultats)
 L'API OSG et la structure en Arbre de scne

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

19

2.2 Ralisation de scnarios pour des tests de performances


Problmatique
L'objectif de cette mission est de crer deux scnarios sur lequel seront effectus ultrieurement des
tests de performances. Un scnario se droulant en campagne et un autre se droulant en ville.
Cette phase implique l'utilisation du logiciel SCANeRII et de ses diffrents modules.

Outils mis en uvre et dmarche


Pour raliser cette mission les connaissances acquises lors de la formation ont t dune trs grande
utilit. De plus laide et les conseils de Claude BERAUDY, un spcialiste dans le domaine ont t
prcieux.
Claude a ralis un scripte Python qui charge tous les objets de la base de donnes et les mets les
uns la suite des autres une distance que l'on peut spcifier.
L'ide c'est de modifier le Script de la faon suivante :

Effectuer un filtre pour ne charger que les objets de type Vhicule

Dupliquer chaque vhicule N fois

Crer un itinraire pour les vhicules

Ainsi sous MICE il suffira juste d'excuter le code Python.


La Phase la plus complexe a t d'inclure l'itinraire des vhicules dans notre code Python :
lorsquon cre sous MICE un scnario en attribuant un itinraire prcis un vhicule on rcupre
dans un fichier .trf les donnes de ce genre :
<ITINERARY> -1 11 2
69 3 225 1 220 0 265 0 237 0 242 2 184 1 149 1 162 1 308 2
310 0

Il suffisait de rcuprer ces donnes et de les copier dans notre scripte l'emplacement adquat.
Dun autre cot il est important de noter que SCANeRII offre la possibilit de rcuprer des
donnes sur le Frame Rate aprs chaque simulation. Lanalyse de ces donnes est trs importante
car elle a permis de mettre en vidence quelques failles de nos scnarios tests.
Par la suite, une fois ces failles cartes, ces donnes serviront de comparaison pour toutes les
modifications que lon aura faire sur le cur du visuel.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

20

Rsultats
Les premiers scnarios ainsi raliss prsentent certaines limites :
o Si le scnario est trop grand les phases de test dureront trop longtemps, il faut donc crer un
itinraire court.
o Lorsqu'on a un croisement ou des ronds points, le trafic se bloque souvent ainsi notre
animation souhaite nabouti pas a sa fin viter que les voiture se rencontrent sur un
rond point ou sur un croisement plusieurs modifications des itinraires ont t
indispensable avant de trouver l'itinraire fonctionnel.
o Le scnario de base se passe la nuit forcer ce que a se passe le jour
o En testant plusieurs fois le mme scnario on saperoit que le rsultat obtenu nest jamais le
mme car le module traffic gre alatoirement le comportement des vhicules (par
exemple entre deux mmes simulation, la premire simulation le vhicule i va doubler le
vhicule j, mais a la prochaine simulation il ne le double pas) et on peut ainsi noter une
diffrence de Frame Rate pour un mme scnario. Ce souci a t minimis en forant les
vhicules ne pas doubler ainsi quen fixant leur vitesse maximale.
Voici ci-dessous une capture d'cran du scnario en campagne:

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

21

Les scnarios finaux prsentaient toutefois un dfaut que lon ne pouvait pas corriger : chaque fois
quon relanait le scnario (sans fermer compltement le module visuel) le frame Rate chutait voir
tableau ci-dessous :
Scnario i

Scnario j

Scnario k

Average Framerate = 100.234


FrameRate stability: 94.658
60:
[==========] 97.3104 %
30:
[=
] 2.6617 %
20:
[=
] 0.00930665 %
- :
[=
] 0.00930665

: Average Framerate = 103.86


: FrameRate stability: 95.079
: 60:
[==========] 97.5305 %
: 30:
[=
] 2.46049 %
20:
[
] 0%
- :
[
] 0

Average Framerate = 100.555


FrameRate stability: 93.5077
60:
[==========] 96.7446 %
30:
[=
] 3.23688 %
20:
[=
] 0.00927472 %
- :
[
] 0

Average Framerate = 98.0267


FrameRate stability: 93.8201
60:
[==========] 96.872 %
30:
[=
] 3.10896 %
20:
[=
] 0.00950751 %
- :
[
] 0

Average Framerate = 100.132


FrameRate stability: 93.422
60:
[==========] 96.6878 %
30:
[=
] 3.28433 %
20:
[=
] 0.00930406 %
- :
[=
] 0.00930406

Average Framerate = 97.631


FrameRate stability: 92.5286
60:
[==========] 96.2405 %
30:
[=
] 3.74046 %
20:
[
] 0%
- :
[=
] 0.00954198

Average Framerate = 97.419


FrameRate stability: 93.8002
60:
[==========] 96.8714 %
30:
[=
] 3.09989 %
20:
[
] 0%
- :
[=
] 0.0191351 %

Average Framerate = 98.5153


FrameRate stability: 93.4456
60:
[==========] 96.6897 %
30:
[=
] 3.28194 %
20:
[=
] 0.00945805 %
- :
[=
] 0.00945805

Average Framerate = 97.4123


FrameRate stability: 93.056
60:
[==========] 96.4993 %
30:
[=
] 3.47202 %
20:
[=
] 0.0095648 %
- :
[=
] 0.0095648

Average Framerate = 96.8216


FrameRate stability: 93.7723
60:
[==========] 96.8332 %
30:
[=
] 3.09943 %
20:
[=
] 0.0288767 %
- :
[=
] 0.0288767

Average Framerate = 97.0876


FrameRate stability: 93.1279
60:
[==========] 96.5256 %
30:
[=
] 3.42643 %
20:
[
] 0%
- :
[=
] 0.0383914

Average Framerate = 95.9651


FrameRate stability: 92.3682
60:
[==========] 96.155 %
30:
[=
] 3.79649 %
20:
[=
] 0.00970968 %
- :
[=
] 0.029129

* En vert: premier lancement du module visuel.


Ceci peu tre du une perte de mmoire comme par exemple la fin de chaque scnario la
mmoire nest pas vide.
Une autre remarque intressante peut tre signale : en ville le Frame rate est plus important quen
autoroute pourtant la ville est beaucoup plus riche en dtails et en objets 3D, on peu expliquer cela
par le culling (les btiments cachent le reste de la gomtrie du coup celle-ci nest pas charge), ou
la scne qui se charge pour la ville est beaucoup moins importante.
Lexemple suivant montre deux captures dcran lors dune scne (une scne en campagne) et
pourtant visuellement limage dont le frame rate est le plus important possde une scne beaucoup
plus charge en objet 3D (voir page suivante).
Comme pour les vhicules dans la partie 2.1, les drawables joue un rle important dans le Frame
Rate.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

Frame rate = 44
Scne pauvre en gomtrie visible
Drawables = 1588

22

Frame rate = 159


Scne assez riche en gomtrie visible
Drawables = 432

Conclusion
Ces deux scnarios tests seront utiles par la suite pour la ralisation de tous les tests et toutes les
modifications sur le visuel de SCANeRII, la difficult dans cet exercice a t de raliser un
scnario test qui soit le plus stable en minimisant les failles et les erreurs.
Cette phase de travail m'as permis de toucher du doigt un langage de programmation que je ne
connaissais pas : le langage Python, et m'as pouss souvent demander de l'aide des personnes qui
m'ont donn normment d'astuces.
D'un autre cot le fait que le code Python soit bien comment aide normment la comprhension
du code, ds lors chaque fois que de mon cot j'crivais du code j'ai dcid de le commenter (en
anglais).
J'ai pu aussi remarquer que l'utilisation du simulateur n'tait pas facile, afin d'obtenir un rsultat
visuel du travail fait, ou juste pour tester quelque chose, il est indispensable de crer un scnario
avant tout, et que le fentrage en cascade tait peu confortable lutilisation.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

23

2.3 Analyse d'un dfaut du visuel


Problmatique
Le but de cette mission est danalyse et de comprendre un dfaut du visuel, en effet lorsquon lance
une simulation on se rend compte que le dplacement des vhicules est discontinu indpendamment
du taux de rafraichissement de la scne.

Outils mis en uvre et dmarche


Les tests raliser se baseront sur les deux scnarios quon a dfinit dans la mission prcdente
savoir un scnario sur autoroute (en campagne) et un autre en ville.
Le Module Recorder et RecorderMG permettent dune part, de sauvegarder un scnario afin de
pouvoir le rejouer dun cot lidentique, dautre part ils nous permettent de rcolter diffrentes
informations chaque rafraichissement dcran telle que : la position, la vitesse, le delta time entre
deux rafraichissement, loffset, le numro du frame, et dautres informations qui ne nous seront pas
utiles.
Il faut noter que le fait de sauvegarder des donnes en mmoire est trs couteux, et que pour
minimiser ce cout, lide de lancer la simulation sans utiliser le visuel montr une plus grande
prcisions au niveau de lenregistrement de ces donnes (voir Annexe C).
Pour lanalyse de ces donnes rcoltes, loutil GnuPlot sest avr le plus efficace.

Rsultats
En affichant la position x, y ou z dun vhicule en fonction des frames, on peu observer une
discontinuit de la courbe (voir schmas ci-dessous). De plus celle-ci est prsente pour tous les
vhicules, au mme moment, et cela pour chacune des coordonnes de ces derniers.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

24

Ce rsultat nous confirme le dfaut que lon observait visuellement savoir des vhicules effectuant
des bons en avant.
De la mme faon on peu remarquer que la courbe de loffset prsente elle aussi une discontinuit
importante et cela pour au mme moment, cependant lorsquon regarde la courbe le delta time en
fonction des frames on observe un nuage de points assez rgulier lexception des points au niveau
des frames provoquant les discontinuits, l o les valeurs du delta time explosent (deux trois fois
plus importantes) :

En rouge les valeurs de labscisse x du vhicule 0 en fonction des frames


En bleu les valeur du delta time en fonction des frames
On peut ainsi mettre plusieurs hypothses concertant ce dfaut :
Ce dfaut peut tre du lenregistrement des donnes sur le disque, par exemple on stocke
les donnes en mmoire vive dans un buffer dune certaine taille, au moment ou celui-ci est
plein, les donnes sont copies en disque dur.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

25

Cette copie couteuse et bloquante peu nous faire perdre de nombreuses valeurs
intermdiaires.
Cependant lorsquon lance un visuel sans enregistrement, on neffectue pas de copie en
mmoire et pourtant le dfaut est toujours prsent.
Dans la mme optique on peu dire quentre deux frames successives, le module traffic
envois plusieurs positions successives mais on ne garde que la dernire (voir illustration cidessous)

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

26

Le module traffic effectue de mauvais calculs et envois de mauvaises valeurs au visuel


qui laide dun algorithme de dead reckoning effectue une interpolation pour que le
visuel affiche un dplacement fluide.

Le calcul de dead reckoning nest pas correcte ce qui a pour rsultat un dplacement non
fluide des vhicules.

Conclusion
Aprs avoir propos ces diffrentes hypothses je me suis pench sur le code du visuel de
SCANeRII afin de comprendre do pouvais venir lerreur.
Cette phase de comprhension du code a t trs longue et assez complexe au vus de tous les
diffrents projets composant le visuel, cependant mon maitre de stage mas rapidement aiguill vers
les projets et les classes analyser ce qui ma t dune grande aide.
Toutefois aprs lanalyse du code et la ralisation de nombreux tests, je nai pu affirmer aucune des
hypothses nonces dans le point prcdent, nanmoins ma connaissance du visuel sest nettement
amliore.
Je souhaite aussi soulign que le code tait vraiment bien commenc ce qui mas permis une prise
en mains rapide du code du visuel ainsi que ca comprhension.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

27

2.4 Tests de performance sur le plugin Sol7


Problmatique
Lobjectif de cette mission est de savoir si avec plugin Sol7 on garde encore une stabilit des
performances, ceci pour simuler laffichage du simulateur sur un cran cylindrique.

Outils mis en uvre et dmarche


Sol7 est un logiciel qui sert dformer laffichage dune application OpenGL, en effet cest un
shader qui va modifier le rendu final affich lcran.
La version dont on dispose est une dmo et fonctionnelle que durant 10 minutes, nous permettant de
crer notre dformation, lenregistrer et de lappliquer sur un rendu visuel se basant sur de
lOpenGL.

Rsultats
Cas de la ville :
-

On a une perte de 3.25 Frames

On a une moyenne de 113 frames/secondes


 1 frame dure 1/113 secondes
 3.25 frames durent 3.25/113
 On a une perte de 3.25/113 sec pour nos
113 frames
Pour un frame on a une perte de : 3.25 /113 x 1/ 113 2.5 x 10-4 sec soit 0.25 ms

Cas sur autoroute :


-

On a une perte de 4.21 Frames

On a une moyenne de 96 frames/secondes


 1 frame dure 1/96 secondes
 4.21 frames durent 4.21/96
 On a une perte de 4.21/96 sec pour nos 96 frames
Pour un frame on a une perte de : 4.21 /96 x 1/ 96 4.5 x 10-4 sec soit 0.45 ms

Conclusion
Les pertes obtenues sont vraiment ngligeables, on peu ainsi dire que notre simulateur reste toujours
optimal et performant.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

28

2.5 Conception et cration d'un module autonome de la


plateforme de simulation
Problmatique
L'objectif de ce projet est de crer un outil qui sera mis la disposition des graphistes, afin qu'ils
puissent tester les vhicules sous le visuel de SCANeRII sans leur fournir tout le simulateur, et en
enlevant tout ce qui est cration de scnarios et utilisation du DEAMON ni du SUPERVISOR.
Ce projet repose sur le cur du visuel du simulateur, et dois tre ralis sous QT4.

Outils mis en uvre et dmarche


Comme ce que l'on a vu en cours, la bonne dmarche pour un projet commence par la ralisation
dun cahier de charge qui aboutira par la suite une conception puis une conception dtailler et
enfin une partie de codage.
Ainsi pour lanalyse du sujet un brainstorming a permis de ressortir les ides essentielles et a
contribu la rdaction du cahier des charges.

Rsultats
Cependant juste aprs avoir ralis le cahier des charges, mon matre de stage m'annonce que pour
des raisons de budgets ainsi que pour l'avancement des autres projets, ce projet sera cart.
(Vous trouvez en Annexe D le cahier de charge qui a t rdig).

Conclusion
J'ai t un peu du par cette nouvelle, car l'ide de travailler sur un projet ds son dbut jusqu' sa
fin menthousiasmait normment, car l'aide de ce projet j'aurai pu mettre en application toutes les
connaissances que j'ai pu avoir en cours.
Nanmoins l'abandon de ce projet ma permis de travailler sur d'autres sujets tout aussi intressants
tels que le travail sur un Plugin (Mersive) ainsi que le travail sur le module EyeTracker de
SCANeR II.
Cela ma aussi montr qu'en entreprise il y a des projets plus importants que d'autres, et que parfois
pour l'avancement de certains projets importants il faut sacrifier d'autres projets de moindre
importance.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

29

2.6 Travaux effectus sur le Plugin Mersive


Problmatique
Le Plugin Mersive sert effectuer une dformation de l'cran (comme avec Sol7). L'objectif de
cette mission est de faire fonctionner ce Plugin.
Une des contraintes de cette mission c'est qu'elle est limite en temps, dix jours environ car le
matriel pour raliser ce travail nous est prt que pour cette dure.

Outils mis en uvre et dmarche


Dans ce projet deux lments sont important:

Du cot matriel : un petit ordinateur nous est fourni, cet ordinateur qui doit tre branch au
rseau, est pralablement calibr et initialis par le fournisseur. Le but de ce matriel est
d'envoyer sur le rseau les diffrents paramtres de calibration.

Du cot logiciel : on nous a fourni le code du Plugin qui rcupre les donnes envoy par le
petit ordinateur, et effectue une transformation.

Aprs avoir dcortiqu le code on peut rsumer le fonctionnement du Plugin de la faon suivante:

Ordinateur
Mersive

BUS

Rseau
Ethernet

Mersive
Plugin

Rendu de la scne
en mmoire

Transformation Post
Draw

Rendu de la
scne l'cran

Aprs l'analyse du code avec l'aide de Franois SAIDI, nous nous sommes aperus que le Plugin
tait cod pour fonctionner avec une version ancienne d'OpenSceneGraph : la 1.2 d'autant plus que
la partie codage tait incorrecte.
Une premire tape a t de corriger celui-ci pour qu'il compile correctement, ainsi que modifier le
code source du visuel pour prendre en compte ce Plugin l.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

30

Rsultats
Dans un premier temps lorsqu'on lanait le visuel, aucune modification n'apparaissait, pour essayer
de comprendre ce qu'il se passait, j'ai eu recourt un debugger.
Cette tape la a t difficile et fastidieuse car il y avait normment d'erreur de segmentation. Pour
rsoudre ce problme un des ingnieurs de l'quipe a suggr de vrifier si toutes les librairies
utilises sont en mode debug, et il avait raison une des librairies n'tait pas en debug, d'o ces
erreurs.
Une fois que tout tait fonctionnel, on pouvait dcortiquer les diffrentes tapes, et on a remarqu
que l'initialisation du Plugin tait un succs, mais en aucun cas on ne rentrait dans la fonction de
post draw (celle qui effectue la transformation).
Aprs avoir fait un rapport mon matre de stage, celui-ci m'informa que le code du visuel a t
modifier pour ne pas prendre en compte les postdraw, par contre pour effectuer les tests on a chang
le code du visuel pour avoir un rsultat visuel, celui ci n'tait pas concluant du tout :

Conclusion
Aprs les dix jours sur ce projet le rsultat final obtenu t celui de l'image en haut, un rsultat
aberrant qui nous pousse nous poser deux questions :

Soit le code ralis dans la fonction PostDraw est faux.

Soit le visuel ne peut pas prendre en compte ces fonctions PostDraw.

Pour rpondre a cette question j'ai essay de faire marcher un Plugin tout simple : afficher un cube
aprs le rendu visuel, ce Plugin n'as pas march bien que l'on rentrait dans la fonction PostDraw et
pourtant, il marchait bien sous l'ancienne version de SCANeRII celle qui repos sur
OpenSceneGraph 1.2.
En tout cas le travail sur ce Plugin m'as permis d'apprendre beaucoup sur l'importance de l'aide
qu'on peu recevoir des collgues, de la dcouverte du dbogage d'une dll, ainsi les dlais de temps
imposs sont difficile grer.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

31

2.7 Cration du module Virtual Tracker


Problmatique
L'objectif de ce module est de simuler un vrai Tracking sauf que lon ne va pas utiliser des camras
comme outil de tracking mais une petite interface en QT qui va les muler.
Ainsi on pourra Calibrer camras virtuelles, et ensuite tester ce qui se passe lorsquon les bouge.
La finalit de ce Virtual Tracker est de vrifier si les matrices de transformations calcules lors de la
phase de calibration sont correctes avant de faire un vritable tracking utilisant des camras.

Outils mis en uvre et dmarche


Pour ce petit projet une dmarche complte est approprie pour raliser ce projet, elle suit les axes
suivants:

Dans un premier temps, la rdaction dun cahier de charge contenant les premires
approches au sujet.

Ensuite aprs l'analyse du projet dans lequel le module Virtual Tracker va tre intgr, on a
effectu une spcification.

Enfin aprs une conception j'ai commenc coder et raliser le travail demand.

En fin de compte le travail se partage en deux parties :

L'interface du Virtual Tracker (qui a t cr l'aide de QT designer 3)

Et le Tracker lui mme (je me suis inspir du code des autres trackers afin de ralis ce
module la, et encore une fois le fait que le code soit commenter aide normment).

Pour effectuer les tests on ajoute au SUPERVISOR le module HEADTRACKER qui contient et on

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

32

lance notre application.

Rsultats
Observations visuelles:
 Dplacement suivant X : positif en avant ngatif en arrire
 Dplacement suivant Y : positif gauche ngatif droite
 Dplacement suivant Z : positif en haut ngatif en bas
 Lorsque lon effectue une rotation puis on effectue une translation la translation est toujours
effectue suivant lancien repre et non le nouveau.
 Mme chose si je souhaite effectuer 2 rotations conscutives la deuxime rotation seffectue sur
lancien repre.

On peu dj penser que le calcul de la matrice de transformation est faux.


Ralisation d'une calibration:

2- On lance la Calibration

1- On lance le Virtual Tracker

4- on valide la calibration

3- on bouge les sliders comme le demande la


calibration

On rpte les tapes 3 et 4 jusqu' terminer la calibration. Elle se traduit par la cration d'un fichier
calibration.cfg qui contient la matrice de transformation ainsi cre.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

33

Le but maintenant c'est de vrifier si la matrice ainsi cre est juste ou fausse, pour cela une
personne de l'quipe a fait sous Excel un petit programme qui fait le calcul de la matrice de
transformation.
Il suffit maintenant d'effectuer des tests de calibration et de vrifier sils sont adquats avec les
rsultats obtenus avec le petit programme.
En effectuant quelques recherches sur les matrices de transformation et aprs avoir dcortiqu le
code de cette dernire, il apparait que le calcul de cette matrice est compltement faux, on a pu
confirmer cela avec les rsultats obtenus lors de la calibration (voir ci-dessous) :
Rsultats Attendus

Rsultats Obtenu

Tx(m)fin

Ty(m)fin

Tz(m)fin

Tx(m)dbut

Ty(m)dbut

Tz(m)dbut

Rx()

90

1,57079633

Ry()

Rz()

basePosOffset.x=0
basePosOffset.y=7.86805e-009
basePosOffset.z=-0.36
baseRotOffset.h=0
baseRotOffset.p=0
baserotOffset.r=-90.0001

translation fin
A

C
0,25

-0,3

-0,18

-0,18

-0,18

X
Y
Z
+

C
0,25

0,18
0,18
-1,103E17 -1,1026E-17
1
1

0,18
-0,3
1

Conclusion
Le module ainsi ralis a t intgr dans la solution finale. Durant cette mission j'ai pu travailler
sur un projet de la conception sa ralisation.
A la suite de ces rsultats j'ai effectu quelques recherches sur les matrices de transformation afin de
modifier celle de la calibration, cependant ce travail ne ma pas t attribu alors que j'avais dj
envisag les solutions.
J'ai ralis ce projet de faon compltement autonome, de plus mes connaissances de QT m'ont
normment aid la ralisation de ce projet.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

34

2.8 VBO And Display List


Problmatique
Ce projet est survenu la demande d'un client, qui souhaitait qu'on effectue le travail suivant sur
tous nos objets 3D:

use DISLPLAY_LIST = false

use VERTEX_BUFFER_OBJECT = true

support DISLPLAY_LIST = true

support VERTEX_BUFFER_OBJECT = true

Outils mis en uvre et dmarche


Avant de commencer, la documentation sur le site d'OpenSceneGraph, a permis de comprendre que
l'on peu raliser la moiti des choses en utilisant des GLObjectsVisitor.
A l'aide des GLObjectsVisitor on peu modifier les deux premiers points savoir la dsactivation
DISPLAY_LIST et l'utilisation des VERTEX_BUFFER_OBJECT en l'appliquant notre scne.
osg::Group *gr = OsgScene::instance()->getScene(); // rcupre la scne
osgUtil::GLObjectsVisitor *gov =
new osgUtil::GLObjectsVisitor(
osgUtil::GLObjectsVisitor::SWITCH_OFF_DISPLAY_LISTS |
osgUtil::GLObjectsVisitor::SWITCH_ON_VERTEX_BUFFER_OBJECTS
);// on crer un GLObjectsVisitor avec ses paramtres souhaits
gov->apply(*(gr)); // j'applique les modifications sur la scne

Pour le support DISPLAY_LIST on a envisag de crer notre propre Visitor qui va traverser tous les
nuds d'un graphe et qui va appliquer toutes les feuilles Drawables la fonction suivante:
osg::Drawable::setSupportsDisplayList (false);

Cependant aucune information concernant le support VERTEX_BUFFER_OBJECT na t


trouve.
Lorsque j'ai fais part de mes ides mon matre de stage il m'a dis que pour les deux premiers
points l'ide est correcte par contre pour les autres points on ne peu pas imposer un objet de
supporter des Display List ou des VBO alors qu'a la base il ne les supporte pas.
La seule phase difficile a t de trouver o placer le petit bout de code : il faut que toute la scne
soit charge en mmoire.
La connaissance du code du visuel est indispensable et fut dune grande aide.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

35

Rsultats
Une fois le travail ralis, les rsultats de la phase de test sur nos scnarios tests (voir ci-dessous)
ont montr une norme diffrence du Frame Rate entre les VBOs et les Display listes :

Avec les VBOs

Avec les Display List

VISUAL
VISUAL
VISUAL
VISUAL
VISUAL
VISUAL

VISUAL
VISUAL
VISUAL
VISUAL
VISUAL
VISUAL

: Average Framerate = 17.9429


: FrameRate stability: 89.0516
: 60: [=] 0 %
: 30: [=] 25.0349 %
: 20: [=] 20.7113 %
:-:
[=] 54.1841 %

: Average Framerate = 58.9303


: FrameRate stability: 92.2564
: 60: [=] 96.0979 %
: 30: [=] 2.9721 %
: 20: [=] 0.869389 %
:-:
[=] 0.0404367

On s'aperoit d'une norme perte du Frame Rate lorsqu'on utilise les VBOs, cela est du la structure
de nos objets qui sont conu pour tre utiliss avec les Display List.
Nous avons tenu compte des souhaits du client et avons uvr come il le dsir, cependant ceci
nous amne dimportantes pertes au niveau de nos performances.

Conclusion
Le fait d'imposer l'utilisation des VBOs a normment fait chuter les performances du simulateur et
pourtant, le client souhaitait les utiliser car pour lui c'tait essentiel afin effectuer certain travaux.
La difficult de cette missions se limitait bien placer le petit bout de code a l'endroit adquat.Lle
travail en groupe ainsi que le fait de tenir au courant mon maitre de stage de ce que je voulais faire,
m'a vit de coder des choses inutiles (comme pour le Visitor que je voulais crer pour raliser
support).

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

36

2.9 Amlioration du Rendu visuel


Problmatique
Deux amliorations du rendu visuel sont ncessaires :
Lamlioration des ombres dynamiques en testant les diffrentes mthodes dombrage
propos par OSG 2.8 : les analyser, ensuite les implmenter dans le visuel SCANeRII.
Mettre en place un brouillard lhorizon afin dadoucir les objets lointain apparaissant au
fur et mesure lorsque lon se dplace dans la scne (par exemple les arbres, les maisons,
les montagnes). Ce projet et encore en phase de ralisation

Outils mis en uvre et dmarche


Afin de pouvoir analyser plus facilement les diffrentes mthodes dombrage proposes par
OpenSceneGraph 2.8 il a t judicieux deffectuer les tests sur un viewer indpendant, avant
dintgrer la meilleure mthode dombrage dans le visuel de SCANeRII.
Il est opportun de noter que toutes ces mthodes reposent sur du Shadow Mapping ,
Pour se rapprocher le plus possible des scnes charges dans le simulateur, les tests seffectueront
sur une scne se composant dun grand terrain et dun vhicule.
La technique choisie se fera en accord avec les critres suivant :
la qualit des ombres
les options proposes par ces techniques
leur impacte sur le frame rate
Avant de commencer cette analyse, il faut dans un premier temps supprimer les ombres statiques
des vhicules. Pour cela il suffit simplement traverser larbre de scne dun vhicule et de
supprimer le nud FIXED_SHADOW  cration dun programme qui prend en paramtre un
objet .ive et qui crer un objet .ive sans les FIXED_SHADOW.
La ralisation de test prliminaire sur les Shadow Map mis en vidence un autre dfaut
concernant les vhicules : des trous dans les ombres (vois page suivant lexemple de la C3).
On explique cet artfact par le fait que dune part les Shadow Map utilisent du front Culling
Face , et que dautre part les vhicules ne sont pas ferms par en dessous. Donc si lon se
positionne sous le vhicule certaines faces de celui-ci ne sont pas affiches.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

37

Pour rsoudre ce problme on a effectu une deuxime demande aux graphistes afin quils ferment
le bas des vhicules, aprs quelques jours, on a reu 3 vhicules dont le bas de caisse tait ferm.

(avant)

(aprs)

On a pu ainsi se pencher sur le vif du sujet.


Les shadow Map de base
-

Mauvaise qualit dombre

Ombres trs grossires

Scintillement des ombres

Les Soft Shadow Map


-

Idale pour de petites scnes


come par exemple juste un
vhicule tout seul comme
limage nous le montre

Trs couteux

Sur notre scne type pour le


simulateur, on ne voit aucune
ombre

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

38

Plugin cr par Okta


Ce Plugin ne peu tre test que sous
le visuel de SCANeRII :
-

Ombres peu ralistes

Ombres instables

Possibilit de dfinir la zone sur


laquelle appliquer les ombres

Camra pour le calcul des


ombres positionne derrire la
camra de vu  les objets que
lon ne voit pas mais qui
projettent des ombres ne sont
pas ignors

Parallel Split Shadow Map


-

Ombres grossires

7 niveaux de dtail des ombres

Possibilit de dfinir la zone sur


laquelle appliquer les ombres

Camra pour le calcul des


ombres positionne derrire la
camra de vu  les objets que
lon ne voit pas mais qui
projettent des ombres ne sont
pas ignors

Light Space Perspective Shadow


Map (lispsm)
-

Ombres dtailles

Ombres trop fonces

Possibilit de dfinir la zone sur


laquelle appliquer les ombres

Perd la transparence de certain


objet comme les vitres et sur
certaines plaques routires on a
des scintillements.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

39

Rsultats
Aprs analyse de ces diffrentes techniques, le choix fut de se pencher vers les LISPSM.
Lintgration des ombres dans le visuel nas pas t complique : il a suffi de modifier larbre de
scne comme il suit en intgrant une Shadowed-Scene:

Le rsultat obtenu ntait pas celui que lon attendait : les ombres calcules ne prenaient pas en
compte la transparence :

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

40

La premire solution qui a rsolu ce problme a t de modifier un paramtres du visuel savoir


mettre lanti-aliasing (ou anticrnelage) zros. Ceci a rsolu le problme cependant la qualit
daffichage tait mauvaise.
La deuxime solution, et cest celle-ci qui va tre garde pour la suite, a t denlever une
optimisation ralis auparavant, qui dsactivais le GL_ALPHA_TEST.

Conclusion
Bien que le rendu visuel soit satisfaisant, il reste tout de mme quelques petits dfauts
corriger comme le scintillement de certaines ombres (comme par exemple sur les panneaux de
signalisation).
Le module Weather control comme son nom lindique sert paramtrer la mto (heure, pluie,
brouillard, neige ), en manipulant ces paramtres certains dfaut sont apparus :

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

41

Pour des valeurs des heures de la journe ( la limite entre le jour et la nuit) et seulement sur
certaines zones de la carte le rendu visuel est compltement anormal et instable (voir capture
ci-dessous)

Disparition des ombres projetes par des objets se trouvant derrire la camra ce qui nest
pas naturel.

Le rendu du brouillard ne marche plus correctement : avant il sappliquait toute la scne,


maintenant il ne sapplique plus quau ciel. On peu expliquer cela par le fait davoir
modifier la scne en ajoutant la Shadowed-Scene .

Etant donn que je dois amliorer lapparition des objets lointains en mettant en place du brouillard
lhorizon (en dautres termes la limite du volume de vision), le futur travail que je vais raliser
me permettra surement de corriger le dernier dfaut nonc.
Ma premire approche ce sujet a t de crer un brouillard linaire dont la couleur est la mme
que celle du ciel (voir Annexe E), cependant une contrainte a t ajout ce sujet : utilisation du
brouillard du simulateur.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

42

3 Conclusion/Bilan
Durant mon stage jai eu lopportunit de dcouvrir et travailler sur diffrents logiciels dont de
simulation. Le dveloppement de plusieurs projets diversifis ma permis davoir une vision
gnrale du travail en entreprise et notamment du temps de travail ainsi que de la priorit quant
certains projets.
Concernant la premire partie de mon stage, la dcouverte et lutilisation de diffrents modules du
simulateur, de certains logiciels ainsi que lAPI OpenSceneGraph, ma t utile, et ce pour toute la
dure de mon stage. Jai pu adapter mon dveloppement en consquence.
Durant la seconde partie de mon stage jai appris grer mon temps en fonction de limportance des
projets. Ces derniers, de nature diversifis, mont tout autant permis dapporter mes comptences
que dacqurir et dapprofondir certaines connaissances.
A travers les diffrents projets raliss, jai pris conscience de la prsence de la ralit virtuelle dans
de nombreux domaines. De plus la qualit du rendu visuel a un norme impacte sur le client : cest
le critre qui peut faire pencher un client choisi ce simulateur au lieu dun autre. Aussi, la socit
OKTAL est en constante volution afin de satisfaire au mieux ses clients.
Ce stage sest rvl trs enrichissant pour mon exprience professionnelle. En effet il sinscrit dans
mon domaine dtude, limagerie et multimdia, et plus particulirement dans domaine de
limagerie 3D temps rel. Grce ce stage jai pu entrevoir en quoi consistait la profession de
dveloppeur 3D mais aussi me familiariser avec ce secteur dactivit, qui est la simulation
automobile. De plus, la familiarisation avec les objectifs et les attentes dOKTAL ma t facilite
par lesprit dquipe de la socit.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

43

Annexes/Bibliographie
Bibliographie
Pour la ralisation de mon stage jai t amen rgulirement me documenter sur le site
dOpenSceneGraph : http://www.openscenegraph.org et lire quelques manuels sur le simulateur
SCANeRII :
SCANeR II Solution for driving Simulation : User Manual (2008 July 24,
Distributed by Oktal)
SCANeR II Solution for driving Simulation : VISUAL RENDERING User Manual
(2008 July 24, Distributed by Oktal)
Jai galement eu recourt au site dOKTAL http://www.oktal.fr o jai pu rcolter dimportantes
informations.

Annexes
Annexe A (page44)
Annexe B (page45)
Annexe C (page46)
Annexe D (page47)
Annexe E (page48)

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

44

Annexe A
On trouve ci contre un tableau sur les performances dun chantillon des 20 vhicules de la base de
donnes avant ralisation des modifications.

Vehicle
Fram Rate

Audi_A3

Audi_TT

BMW_5

Citroene_C2

Citroene_C3

Citroene_C4

Cull
Draw

58
8,2
16,5

297
3
3,02

130
3,4
7,3

329
1,7
1,4

230
3,2
4,02

50
19,4
12

GPU

16,2

2,13

6,6

2,02

3,6

11,6

Group
Transform

13
32
74

12
23
74

34
36
69

10
29
73

11
19
73

13
18
73

LOD
Switch

11
0

14
0

11
0

0
8

5
0

2
0

Geode
Drawable

58
206

58
58

85
85

16
16

53
53

985
987

Geometry
Vertices
Primitives

206
7218

58
8856

85
9461

16
26208

53
21713

987
36492

2460

3042

3181

8736

5919

12164

3712
1985

768
1409

5440
2241

1088
1793

3392
1153

63040
1089

767
704

767
896

447
704

703
0

703
320

703
128

Geode
Drawable

0
3712

0
3712

0
5440

512
1024

0
3392

0
63040

13184

3712

5440

1024

3392

63168

Geometry

13184

3712

5440

1024

3392

63168

Vertices
Primitives

461952
157440

566784
194688

605504
203584

1677312
559104

1389632
378816

2335488
778496

9728
9728

1792
1792

2688
2688

512
512

2752
2752

18512
18512

273600
60800

363648
75392

348096
77696

1646208
548736

996352
73408

2201520
733840

0
10944

0
18432

0
11712

0
0

320
5376

0
0

19712
0

28736
0

25408
0

0
0

191808
0

0
0

UNIQUE
Statest

INSTANCE
Statest
Group
Transform
LOD
Switch

Matrices
Drawables
Vertices
Trangles
Tri.Strips
Tri.Fans
Quads
Quad Strips

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

45

Annexe B
On trouve ci contre un tableau sur les performances dun chantillon des 20 vhicules de la base de
donnes aprs ralisation des modifications.
Audi_A3

Audi_TT

BMW_5

Citroen_C2

Citroen_C3

Citroen_C4

240
2,3
1,9
0,9

205
2,42
2,45
1,8

209
2,4
2,3
1,6

270
2,2
1,5
1,99

134
2,4
2,4
7,3

209
2,5
2,3
3,5

11
19
79
0
9
15
20
20
1905
1737

17
16
79
0
8
14
23
23
7092
2364

13
22
79
0
9
15
23
23
6573
2191

9
23
79
0
8
16
17
17
10420
8764

11
17
79
0
8
15
27
27
21999
7333

15
32
79
0
9
15
23
23
20923
12600

Primitives

1344
1153
1087
0
576
960
1280
1280
121920
111168

1536
961
1087
0
512
896
1472
1472
453888
151296

1536
1345
1087
0
576
960
1472
1472
420672
140224

1152
1409
1087
0
512
1024
1088
1088
666880
560896

1792
1025
1087
0
512
960
1728
1728
1407936
469312

1536
1985
1087
0
576
960
1472
1472
1339072
806400

Matrices
Drawables
Vertices

768
768
111936

1024
1024
421632

960
960
399552

512
512
655104

1088
1088
1361776

896
896
1300288

Trangles
Tri.Strips

5376
102464

140544
0

133184
0

443264
0

454592
0

287232
0

Vehicle
Fram Rate
Cull
Draw
GPU

UNIQUE
Stateset
Group
Transform
LOD
Switch
Geode
Drawable
Geometry
Vertices
Primitives

INSTANCE
Statest
Group
Transform
LOD
Switch
Geode
Drawable
Geometry
Vertices

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

46

Annexe C
En rouge un enregistrement normal
En bleu un enregistrement effectu sans lancer de visuel
 Les dcalages au niveau de la courbe bleu sont beaucoup moins importants.

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

47

Annexe D
Cahier des Charges
A) Introduction
Ce projet sinscrit dans le cadre de mon stage pour lentreprise OKTAL, cet outil est destin aux
graphistes afin quils puissent tester les vhicules et les cartes quils construisent sans avoir lancer
le logiciel SCANeR (voir dtails en Annexe) mais un logiciel plus lger et facile dutilisation.

B) Description de la demande
a. Les objectifs
 Raliser une interface IHM agrable et facile dutilisation.
 Le logiciel a pour but de tester les objets 3D cres par les graphistes afin
de voir sils seront corrects lorsquils seront chargs sous SCANeR.
b. Produit du projet
 Le projet aboutira la ralisation dun logiciel.
c. Fonction du Projet
 Charger un vhicule / un environnement
 Naviguer librement dans la scne / Camra qui suit le vhicule
 Animer le vhicule :
Faire tourner les roues
Faire avancer le vhicule
Faire freiner le vhicule
Allumer les clignotants
Allumer les feux de voiture

C) Contraintes
a. Contrainte de dlais et de cots
b. Autres contraintes
 Utilisation du visuel de SCANeR qui se repose sur du OpenSceneGraph
 Utilisation de la librairie QT4 pour lIHM

D) Droulement du projet
a. Planification
 Valider le cahier de charge (klk jours)
 Faire la spcification (une semaine)
 Faire la conception dtaille (une semaine)
 Codage (deux semaine)
 Jeu de test (klk jours)
b. Ressources
 Une seule personne sur le Projet en loccurrence moi + aide de mon maitre
de stage
Questions poser :
-

Placer un seul vhicule sur la scne / ou plusieurs vhicules ?


Pouvoir charger un vhicule et une scne en mm tps ? (si oui ya la pb que le vhicule doit se trouver sur la
map et non pas en bas ou au dessus)
Dplacement du vhicules  sur place mais on fait lanimation ???
Dplacement du vhicule avec le clavier ou avec linterface ou les deux ???
Avoir un menu Open/Add vehicle or Scene
Ajouter une grille ??
Pouvoir jouer sur le tps de la carte cad  faire un set mto ou date du jour ????
Application prendre toute la fentre de lcran ???? si oui mettre en place les fonctions de resize

Omar BENNANI

2008/2009

Universit Paul Sabatier

OKTAL

48

Annexe E
Ma premire approche a t deffectuer un test en dehors de SCANeRII tout comme pour les
ombres afin de comprendre le fonctionnement du brouillard.
Ce brouillard linaire a pour seul but dattnuer lapparition des objets lorsquils entre dans le
volume de vision de la camra.

Omar BENNANI

2008/2009

Universit Paul Sabatier

Vous aimerez peut-être aussi