49
BENNANI Omar Rapport de stage effectué du 01/04/2009 au 01/10/2009 Dans la Société : OKTAL à Meudon Rapport de stage de fin d’études : Analyse et amélioration du rendu visuel Master 2 Pro Imagerie et Multimédia Année 2008/2009 De l’université Paul Sabatier (Toulouse III) Maître de stage : Millet Guillaume Tuteur de stage : Mathias Paulin

Rapport de stage de fin d’études : Analyse et amélioration du rendu visuel

Embed Size (px)

DESCRIPTION

Au cours des six mois de stage au sein de la société OKTAL, éditrice de progiciel de simulation deconduite, j'ai pu mettre en oeuvre les connaissances techniques acquises durant mon cursusuniversitaire à Paul Sabatier, et ce dans le domaine du rendu temps réel.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 première phase de travail fut la familiarisation avec l'environnement de travail :· l'environnement physique, avec les différents niveaux de déploiement (recherche etdeveloppement, support, administration) .· L'environnement logiciel , avec l'utilisation des différents modules du simulateurSCANeR©II.La phase suivante, le développement à proprement parler, était constituée de plusieurs projets :· Analyse des performances des véhicules· Analyse d'un défaut au niveau du visuel dans l'optique de trouver des solutions pouraméliorer ce dernier.· Conception et création d'un module autonome de la plateforme de simulation en reprenant etoptimisant le coeur visuel.· Améliorer la qualité du rendu ( Ombres, éclairage de la scène, HDRR).· Temps de chargement des scenes 3D.J'ai été sollicité sur d’autres projets ne faisant pas parti directement de mon sujet de stage mais quiont eu un apport constructif :· Travail sur le plugIn Mersive· Réalisation d'un module de virtual Tracker (simuler la calibration d'une camera).Après une présentation de l'entreprise, puis du logiciel, nous détaillerons ces différents projets.Nousnous pencherons finalement sur un bilan.

Citation preview

  • 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 1

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    Table des matires

    Table des matires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Remerciements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Introduction gnrale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1 OKTAL, un acteur majeur de la simulation. . . . . . . . . . . . . . . . 4

    1.1 Prsentation de la socit OKTAL . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Secteurs d'activits rpartis en quatre niches . . . . . . . . . . . . . . . . 5 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

  • OKTAL 2

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 3

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 4

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 5

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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

    AUTOMOBILE &

    VEHICULES TERRESTRES

    DEFENSE &

    SECURITE

    AERONAUTIQUE &

    SPATIAL

  • OKTAL 6

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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

  • OKTAL 7

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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

  • OKTAL 8

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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

  • OKTAL 9

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 10

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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

  • OKTAL 11

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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 ci-dessous que les modules qui on t indispensables mon stage.

  • OKTAL 12

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

    Protocole de Communication Ethernet de SCANeRII

    Traffic

    Calcule les mouvements et les actions des vhicules autonomes.

    Scenario

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

    Recorder &

    RecorderMG

    Ce module permet de sauvegarder un scnario avec son traffic.

    HeadTracker

    Ce module est un traker de mouvement de la tte

    Supervisor

    Outil principal de gestion des modules : Dmarrer / Arrter

    MAP

    Visualisation 2D de l'environnement.

    MICE

    Interface de conception des scnarios: - choix de la carte - insertion de vhicules - dfinir les conditions initiales - criture de rgles et de taches

    VISUAL

    Visualisation 3D de la simulation

    Weather_CT

    Ce module permet de modifier la mto :

  • OKTAL 13

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 14

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 15

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 16

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 17

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 18

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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

  • OKTAL 19

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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 :

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

  • OKTAL 20

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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:

  • OKTAL 21

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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 = 98.0267 FrameRate stability: 93.8201 60: [==========] 96.872 % 30: [= ] 3.10896 % 20: [= ] 0.00950751 % - : [ ] 0

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

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

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

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

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

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

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

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

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

    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.

  • OKTAL 22

    Omar BENNANI 2008/2009 Universit Paul Sabatier

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

    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.

  • OKTAL 23

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 24

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 25

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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 ci-dessous)

  • OKTAL 26

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 27

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 28

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 29

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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:

    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.

    BUS Ordinateur Mersive

    Rendu de la scne en mmoire

    Rendu de la scne l'cran

    Mersive Plugin

    Transformation Post Draw

    Rseau Ethernet

  • OKTAL 30

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 31

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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

  • OKTAL 32

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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:

    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.

    1- On lance le Virtual Tracker 2- On lance la Calibration

    3- on bouge les sliders comme le demande la calibration

    4- on valide la calibration

  • OKTAL 33

    Omar BENNANI 2008/2009 Universit Paul Sabatier

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

    Ty(m)fin 0 0

    Tz(m)fin 0 0

    Tx(m)dbut 0 0

    Ty(m)dbut 0 0

    Tz(m)dbut 0 0

    Rx() 90 1,57079633

    Ry() 0 0

    Rz() 0 0

    translation fin

    A B C

    X 0 0,25 0

    Y 0 0 -0,3

    Z -0,18 -0,18 -0,18

    + 1 1 1

    A B C

    X 0 0,25 0

    Y 0,18 0,18 0,18

    Z -1,103E-

    17 -1,1026E-17 -0,3 + 1 1 1

    basePosOffset.x=0 basePosOffset.y=7.86805e-009 basePosOffset.z=-0.36

    baseRotOffset.h=0 baseRotOffset.p=0 baserotOffset.r=-90.0001

    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.

  • OKTAL 34

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 35

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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 : Average Framerate = 17.9429 VISUAL : FrameRate stability: 89.0516 VISUAL : 60: [=] 0 % VISUAL : 30: [=] 25.0349 % VISUAL : 20: [=] 20.7113 % VISUAL : - : [=] 54.1841 %

    VISUAL : Average Framerate = 58.9303 VISUAL : FrameRate stability: 92.2564 VISUAL : 60: [=] 96.0979 % VISUAL : 30: [=] 2.9721 % VISUAL : 20: [=] 0.869389 % VISUAL : - : [=] 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).

  • OKTAL 36

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 37

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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

  • OKTAL 38

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 39

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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 :

  • OKTAL 40

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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 :

  • OKTAL 41

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 42

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 43

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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)

  • OKTAL 44

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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 Audi_A3 Audi_TT BMW_5 Citroene_C2 Citroene_C3 Citroene_C4

    Fram Rate 58 297 130 329 230 50 Cull 8,2 3 3,4 1,7 3,2 19,4 Draw 16,5 3,02 7,3 1,4 4,02 12 GPU 16,2 2,13 6,6 2,02 3,6 11,6

    UNIQUE

    Statest 13 12 34 10 11 13 Group 32 23 36 29 19 18 Transform 74 74 69 73 73 73 LOD 11 14 11 0 5 2 Switch 0 0 0 8 0 0 Geode 58 58 85 16 53 985 Drawable 206 58 85 16 53 987 Geometry 206 58 85 16 53 987 Vertices 7218 8856 9461 26208 21713 36492 Primitives 2460 3042 3181 8736 5919 12164

    INSTANCE

    Statest 3712 768 5440 1088 3392 63040 Group 1985 1409 2241 1793 1153 1089 Transform 767 767 447 703 703 703 LOD 704 896 704 0 320 128 Switch 0 0 0 512 0 0 Geode 3712 3712 5440 1024 3392 63040 Drawable 13184 3712 5440 1024 3392 63168 Geometry 13184 3712 5440 1024 3392 63168 Vertices 461952 566784 605504 1677312 1389632 2335488 Primitives 157440 194688 203584 559104 378816 778496

    Matrices 9728 1792 2688 512 2752 18512 Drawables 9728 1792 2688 512 2752 18512 Vertices 273600 363648 348096 1646208 996352 2201520 Trangles 60800 75392 77696 548736 73408 733840 Tri.Strips 0 0 0 0 320 0 Tri.Fans 10944 18432 11712 0 5376 0 Quads 19712 28736 25408 0 191808 0 Quad Strips 0 0 0 0 0 0

  • OKTAL 45

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

    Vehicle Audi_A3 Audi_TT BMW_5 Citroen_C2 Citroen_C3 Citroen_C4

    Fram Rate 240 205 209 270 134 209 Cull 2,3 2,42 2,4 2,2 2,4 2,5 Draw 1,9 2,45 2,3 1,5 2,4 2,3 GPU 0,9 1,8 1,6 1,99 7,3 3,5

    UNIQUE

    Stateset 11 17 13 9 11 15 Group 19 16 22 23 17 32 Transform 79 79 79 79 79 79 LOD 0 0 0 0 0 0 Switch 9 8 9 8 8 9 Geode 15 14 15 16 15 15 Drawable 20 23 23 17 27 23 Geometry 20 23 23 17 27 23 Vertices 1905 7092 6573 10420 21999 20923 Primitives 1737 2364 2191 8764 7333 12600

    INSTANCE

    Statest 1344 1536 1536 1152 1792 1536 Group 1153 961 1345 1409 1025 1985 Transform 1087 1087 1087 1087 1087 1087 LOD 0 0 0 0 0 0 Switch 576 512 576 512 512 576 Geode 960 896 960 1024 960 960 Drawable 1280 1472 1472 1088 1728 1472 Geometry 1280 1472 1472 1088 1728 1472 Vertices 121920 453888 420672 666880 1407936 1339072 Primitives 111168 151296 140224 560896 469312 806400

    Matrices 768 1024 960 512 1088 896 Drawables 768 1024 960 512 1088 896 Vertices 111936 421632 399552 655104 1361776 1300288 Trangles 5376 140544 133184 443264 454592 287232 Tri.Strips 102464 0 0 0 0 0

  • OKTAL 46

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.

  • OKTAL 47

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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

  • OKTAL 48

    Omar BENNANI 2008/2009 Universit Paul Sabatier

    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.