Home

Rapport de Stage

image

Contents

1. d T Y m n Je ferais donc en sorte de pr parer au mieux et de tester tous ces besoins dans ARTGpu afin de faciliter le travail d int gration qui arrivera ensuite 2 D coupage des projets Afin de planifier les diff rentes tapes du projet j ai mis a jour un diagramme de Gantt Je vous invite vous rendre dans l annexe o se trouve ce diagramme avec toutes les tapes d taill es 3 D veloppement du logiciel Advanced Rendering Tools Gpu ARTGpu Pour commencer je vais pr senter mon poste de travail c est une station professionnelle de la marque CARRI compos e d un ntel i7 Extr me 8 coeurs avec une carte graphique Nvidia Tesla C2070 et 16 Go de DDR3 Une machine que l on peut donc qualifier d ultra performante a Mise en place du Raytracing Comme nous l avons vu auparavant les tudiants pr c dents ont montr le chemin et ont donn des pistes pour la conception de ce raytracing sous GPU Cependant le choix d utiliser Optix impliquait de tout recommencer et de tout repenser de z ro En effet Optix utilise des fonctions m thodes et styles de programmation qui lui sont propre Un code source d velopp sous CUDA serait tr s compliqu et beaucoup plus fastidieux a convertir que le r crire en Optix CUDA C
2. Pour M lt 1 la vitesse du fluide est inf rieure celle du son on a donc un coulement dit subsonique Pour que la vitesse du fluide augmente dc o il faut que la section du conduit diminue dS o on a donc la pression du fluide qui diminue dp o Master Physique et Informatique Modele thermique appliqu aux tuy res dans Crira E Rapport de Stage Pour M gt 1 on a un coulement supersonique Pour que la vitesse du fluide augmente il faut dc o donc on a dS gt o la section du conduit augmente par contre on a toujours dp o la pression du fluide diminue Cette situation est inconcevable pour un fluide incompressible mais ici on a dv 1 cde c dc dc dv dc Ma donc gt v yp v ypv c C V C En r gime supersonique la variation relative du volume massique est plus grande que celle de la vitesse c est l expansion volumique du fluide qui impose l augmentation de la section du conduit 1 dS Ma 1 dc M A Pour M 1 ona ss m hS 0 donc il s agit d un minimum de section du canal le col Pour d passer la vitesse du son en sortie il faut donc une tuy re convergente divergente La section du canal diminue pour augmenter la vitesse du fluide jusqu a ce qu elle atteigne la vitesse du son puis elle r augmente ensuite La tuy re doit avoir un profil calcul tr s pr cis ment pour obtenir cet effet Calcul des valeurs au col On prend pour indice e pour l entr e de la tuy re
3. Gps y Loch Pou It v xs ceq em T s vp P fait xt d ypv our un gaz parTalt X S OU a a ypv Ecoulement adiabatique sans frottement dans un conduit horizontal on a un d bit massique constant avec S la section du conduit et c la vitesse du fluide d dm d p v dx Sc m c dt dr To y E Le fait que l coulement soit stationnaire donc que le d bit massique soit constant se traduit par p T L quation pour un coulement dans une turbine id ale est v dp c dc Cette quation montre bien que pour augmenter la vitesse d coulement il faut diminuer la pression dans le fluide L coulement est adiabatique d d r versible on a donc pour un gaz parfait ty E 0 l d 1 cdc Et en utilisant la loi de l coulement v dp c dc on a ul puis en reportant dans la loi du d bit massique on obtient dS 1 dc c dc cC dc 1 S ypv C ypv C On appelle le nombre de Mach Ma le rapport entre la vitesse du fluide et la c l rit du son Ma EE D o l quation Ma 1 E On peut aussi relier la variation de section l coulement en divisant l quation du fluide en coulement par c et ona dc 1 va 1 dp d 1 Ma dp c c nu DP Mai pn d dn y Ma pn Ces deux quations mettent en vidence des comportements diff rents suivant que le nombre de Mach est plus petit ou plus grand que 1
4. 2 gt el HU Igel TT y puc ris S 2 ONE wm NK EN E NN A O E CU A E D as E A ER s NC ES 9 E as dues ais es en mm t E DE DEE EE DST EE DEEN Y gece Se du QD ck cc 3 n T eanet so e e aere ETES disserens enne A pu lee A ne TEE os DI P BM 17 BN E Bi mr T SI 1 1 qeu TI yal ayan Lone porem TP S c D TM TN MM A EMEN e d dde T ed EEN e MANI EEN S O De i i i i i D D O 3 e c mns Aere T T M LN inc nn Ieteegeegeen T calc Ru gt E OO TERA conn oot e o eng em aree qe o erre m nIUUMRC e EE T Lens T i CY a iL PEN ur eb i TO O E S T 2 E BI x tcn ESSA ET e E e posue S Q A DQQ A c e d A EE 1 ON E E E E E E NEUE D N O Oo OD u li D 2 ap nia fud ps i T7 TY s in s i ln i n TP m e T br MEET ER SES m nes e ill EE eg ms imu a udi d E a 1 M T7771 Se EE ES n Lu Q Y Pod ME E o o d NEN S O ro UN p dieanenarin UE OLI E RD EU E REENEN SENE TETUER RP o A A A peer o S i Po 0 IT d u El ou ESS 3 IK CSS D aa ER pu Te wn T Le OD A UE ER OR PN Sees P tC 0 5 S NM L NE id NE tes ai PE ih E o ai J 2 s MN EC EE EE MEE RN QE NE lato 1 1 1 1 1 o 2 EEN a
5. Gestion des caustiques par le path tracing Enfin la derni re option int ressante est la possibilit de choisir les chemins des rayons de mani res al atoires m thode classique du path tracing ou d utiliser la m thode MCMC Markov Chain Monte Carlo afin d optimiser ce tirage Cette option expliqu en d tails dans le V permet d acc l rer norm ment le temps de rendu de notre path tracing Ci dessus gauche une image g n r e en 10 secondes avec la m thode classique droite avec la MCMC On remarque bien que pour un m me temps et une m me sc ne la MCMC est plus rapide et plus pr cise Master Physique etinformatique D veloppement et programmation E ECH DT p x pais ius p Sen p E UM per ES EE A EA ENERO TEARS pa Zoo pee EN pou e q CESSE e 1 po CE p FER je CNN pese o Hu E NE d i NM LP I 2 T T LS EEN lT 13 T7773 T T EECH TP nnm 1 a eege enee Antenn qe e nid 1 load vecina 1 m edm E mem urere me WE ies e 1 as n ree RR cte tem 1 eat TE 3 gt EO OS SSA js po 1 A A SE ECG ES ET mM E 1 A cuu E EE V a NA BAM EN E NE E 1 Lg a I D E A E AA ENK d Y i FT eg e E m DRE l MEE e v E eO d 7 iz a se d d d aii UD LC Kee acci T 7 E ac rr xm i b eod hod cce D uv i d d OU EE NE DM MES 3 gt Is Es T E H A E u
6. Cr ation da la Jm III LAN Data Fermeture Onera auae p San sap snbituguApounseu p fod nesanouquene Bnqqap qa uonesyeuiy DS suiqneduioa qa suogeunojur ajnpopy not CC IMD UE weg apon Ange E vo Saus eh ap ia xnap ap puawsbieyg El Duef angus ey suep aada unp poly H 6uiddepyuozjoy y snpopy ole Kl Saiauioafb sa suep 4al np noh Cal sei Inad uanggsinn qa lt ppq uarsianuaoa a 04313143 181401 UN p UE d E NENE UN p suongara RNE NEL sap qa jul sla Suondop dus sap 4a saBEagpsiulp Ads sap uogealg m E c IW ue ea m me hoe c 4 E me Em c Il Stage Onera Ecriture du rapport de stage MEUUSUSE s aL anbiz u uongunugiBol avril 2012 mal 2012 mars 2012 Rapport de Stage LOC Moe LOC Enl ZLOZ 2 N d e N ANNEXES Master Physique et Informatique
7. D roulement de compilation pour un programme CUDA C Un programme CUDA utilise des kernels et des flux de donn es Ces flux de donn es peut tre par exemple des vecteurs de nombres flottants ou des ensembles de frames pour du traitement vid o CUDA fournit trois m canismes pour parall liser un programme un regroupement hi rarchique des threads des m moires partag es des barri res de synchronisation R partition du travail entre threads regroup s en bloc Chaque kernel est associ avec une grille dans le device Le choix du nombre de threads et de blocs est conditionn par la nature de l application et la nature des donn es traiter Le but est d offrir au programmeur des moyens d organiser les threads de mani re adapt e l organisation des donn es afin de simplifier l acc s a ces donn es les donn es sont organis es en grille et les threads aussi Chaque thread dispose d un identifiant unique ID appel threadldx Les variables blockDim et threadldx sont d finies automatiquement et sont de type dim3 Les threads dont un bloc peuvent tre organis s suivant une deux ou trois dimensions Chaque dimension est acc d e par la notation threadldx x threadldx y et threadldx z Ex cution d un kernel sur un device source libpfb so Master Physique et Informatique Introduction aux notions essentielles EM Rapport de Stage La m moire La gestion de la m moire sur le GPU est une chose important
8. 3 Wo dsbecges dU aeu du dccem 44 4 LARHYSIGUE DU PATH TRACING ge e 46 5 COMPARATIFS AVANTAGES DEFAUTS ET ROLES DES DIFFERENTS MODULES nennen nnne nennen 48 a A o 48 b Comparatifs des modules e e nn 49 BENE Pr sentation Master Physique et Informatique Rapport de Stage VI MODELE THERMIQUE APPLIQUE AUX TUYERES DANS CRIRA eese nen nennen 52 1 LEMODELE THERMIOUE ACTUEL seen eee daran 52 gt Barber eng EI 52 3i ETUDE THERMODYNAMIOUE REENEN 55 a Calcul des principaux param tres d une tuy re convergente sess 55 b Cas des turbor acteurs OO 57 C Temperature de mr n 57 d Pro animation COR tai 58 Vil CONCLUSI N ara summer 60 VIII BIBLIOGRAPHIE 7 WEBOGRAPHIE coc 62 D ANNEXES c 64 1 LA PROGRAMMATION AVEC CUDA ann 64 a OO E E E E E E E E 64 b Notions de threads grille et blocs E 64 C Les fonctions variables et routines EE 65 LA PROGRAMMA TON AVE COPT ecrin ee ee ie ini 67 L S DIFF RENTS MPE Eege 70 a Les fichiers OBJ article iss A 70 b Les fichiers BDD article technique e BE 71 4 MANUEL UTE MON ARE GR a a a ee en 72 a Installation version d veloppeur sssssssssssssssennnnne nennen nennen nennen nnne nnns nennen nennen nnn nennen 72 b
9. Il INTRODUCTION AUX NOTIONS ESSENTIELLES eere tente ente ta teta onere bebe tete but ie dise sie 12 B Nga s cc P 12 2 PADETSSCNGETPHOTONIVAPPING S uidit ton tions bu uinpems ancien Me DID 13 3 Bn ge e e T 14 4 EE 16 5 LA PROGRAMMATION SOUS GPU e e 17 6 IPTE RAIRA ONGEN IN c 19 II ROBERT ENNER 20 1 ASTUA TON i is 20 2 Be onion ei dona eM MM ML MEI M nm E 20 EE CHOD C c E 21 IV DEVELOPPEMENT ET PROGRAMMATION entgegen 22 EE 22 Reeg ee 23 DEVELOPPEMENT DU LOGICIEL ADVANCED RENDERING TOOLS GPU ARTGPU eene 23 a MISE ago ote OU E 23 b Les tests de performances du Raytracing E 27 C EE 30 d EE 32 e Mise en place du Path Tracing Markov Chain Monte Carlo 34 T Dia grammes du projet M 36 g Fonctions communes probl mes et solutions 38 4 eu o o S S 38 5 PES CODE A 39 6 J apzecxdeplucedil 39 7 QUVERTURE ET EVOLUTIONS FUTURES eebe 39 V LES METHODES DE RENDU EXPLIQUEES PAR LA PHYSIQUE ss E ENEE 40 1 L EGUATION DE RENDU ARTICLE INFORMATIF ISSU D INTERNET 2225 28 dd ne 40 2 LA PHYSIQUE DU RAYTRACING ARTICLE INFORMATIF ISSU D INTERNET iii 41 a RO gu H He 42 b EA PP A 43
10. Insrau at EE 72 C Fonctionnement d taill de AkRTtGpu nnne enne nennen nnne nnne nnne nnne nnns nennen nns 73 d Historique des versions esse 76 5 DIAGPARIIEDE GANI E 77 Master Physique et Informatique Pr sentation EM Rapport de Stage Glossaire CUDA Compute Unified Device Architecture ou architecture mat rielle unifi e de calcul C est une biblioth que de calcul permettant l utilisation du mat riel de rendu graphique construit par NVIDIA d autre fin que l affichage direct OpenCL Open Computing Language est la combinaison d une API et d un langage de programmation d riv du C propos comme un standard ouvert par le Khronos Group OpenCL est concu pour programmer des syst mes parall les h t rog nes comprenant par exemple la fois un CPU multi c ur et un GPU OpenGL Open Graphics Library est une sp cification qui d finit une API multiplateforme pour la conception d applications g n rant des images 3D mais galement 2D L interface regroupe environ 250 fonctions diff rentes qui peuvent tre utilis es pour afficher des sc nes tridimensionnelles complexes partir de simples primitives g om triques GPU Graphical Processing Unit ou Unit de calcul graphique Repr sent e dans l ordinateur par la pi ce connue sous le nom de carte graphique GPGPU Global Purpose GPU Type particulier de GPU cette unit de calcul se comporte pr sent comme Un coprocesseur part enti re Ra
11. c dentes mon sujet de stage consiste am liorer et optimiser la pass2 du logiciel Crira de l Onera Nous avons fait le choix d utiliser la librairie Optix qui correspond le plus nos attentes et aux besoins futurs Afin de fournir les outils n cessaires a Crira il a t d cid de d velopper un logiciel de d monstration ARTGpu qui va tre une vitrine des possibilit s et performances fournit par la librairie choisie ainsi qu une base de d veloppement Ce logiciel permettra de faire le rendu d objet 3d par diff rentes techniques path tracing photon mapping raytracing et offrira de nombreuses options num r es dans la suite qui feront de ce logiciel un outil g n raliste qui pourra tre utilis ventuellement dans d autres domaines au sein de l Onera Ce ne sera qu une fois ce logiciel fini que l int gration des fonctions s lectionn es sera possible dans Crira 1 Cahier des charges Mais afin de bien comprendre comment fonctionne le logiciel de l Onera voici les grandes tapes qui constituent la passa e Lire la base de donn es existantes avions e Lire le fichier de d coupage du jet Lecture des Lire le fichier raccord jet avion fichiers e Lire le nombre de jets pour l avion e Ecriture du jet au format SDM Ecriture des Ecriture du fichier raccord au format ASCII fichiers e Ajout du jet la bdd Avion e Lire les coordonn es du point de vis e et de la r solution de l image Pr paration Lire
12. certain nombre de noeuds diff rents transforma ss fournit par l API Optix L architecture de eis ces arbres est la suivante chaque noeud p objets en bas d E KR d crit un objet g om trique en haut et des Geometry Le Geometry Geometry Hi rarchie des objets dans Optix source Nvidia ANNEXES Master Physique et Informatique Rapport de Stage Les couleurs Dans Optix la couleur est g r e diff remment Alors que pour une image classique la couleur d un point est d finie par un couple de variables RGB donc trois valeurs distinctes de type float sous Optix ces valeurs sont contenues dans une structure de type uchar4 donc 4 unsigned character valeur de o 255 pour R G B et A Alpha Cela permet de faire passer la couleur pour une texture affichable par OpenGL Dans le syst me RGBA red green blue alpha image ci dessous on rajoute une valeur alpha pour rajouter des effets de alpha blending association complexe de deux couleurs afin de rendre possible des effets de transparence et de alpha compositing processus de combination d une image et d un arri re plan qui permet de cr er des transparences Sample Length D D B B8 Channel Membership Alpha Red Green Blue Bit Humber 31 30 28 28 27 26 25 24 23 22 21 20 18 18 17 16 15 14 13 12 11108 8 7 6 5 43 21 0 Programmation de la couleur en RGBA Cette gestion des couleurs permet l utilisation d effet pour les r flexi
13. d fini un nouvel objet Il est pr f rable que deux objets n aient pas le m me num ro ni le m me nom Le mot cl lt SOMMET gt est suivi sur la m me ligne du nombre de points qui forment l objet Les lignes suivantes comportent d abord le num ro de point entier puis les 3 coordonn es format flottant en x y et z du point Le format est libre s par par des espaces et ou des tabulations Il doit y avoir autant de lignes que de nombre de points d clar s avec le mot cl La num rotation commence 1 Le mot cl FACE permet de d finir les facettes d un objet Le mot cl est suivi du nombre de facettes Les lignes suivantes comportent d abord le num ro de la facette suivi du nombre de sommets de la facette et enfin pour chaque sommet le num ro d indice des sommets dans le tableau des points La num rotation des facettes commence 1 Seuls les mots cl s OBJET lt SOMMET gt et FACE sont obligatoires Le mot cl NORMALE permet d entrer les normales aux barycentres des facettes Le mot cl VECTEUR permet d entrer un tableau de normales aux sommets ll est suivi sur la m me ligne du nombre de normales aux sommets Ce nombre peut tre gal au nombre de sommets mais ce n est pas une obligation Le mot cl lt LUMINANCE gt idem en version anglaise permet de d finir les normales affecter chaque sommet de facette Il est suivi du nombre de facettes pour lesquelles on entre des normales aux
14. est grand plus les t ches lumineuses seront petites L intensit r fl chie totale est ainsi I la Id Is Pour plusieurs sources lumineuses on obtient comme formule complete I ja ka H id n kd to 2 isn ks 2 7 ne sources Application a l infographie Dans le logiciel ARTGpu les coefficients ka kd ks vont contenir les informations de couleur en RGB de o 255 pour les trois composantes rouge vert bleu C est gr ce ces trois coefficients que l on peut utiliser des mat riaux sur les objets Il faut aussi avoir en t te que ce mod le empirique et n est fond sur aucune th orie physique mais uniquement sur les observations de Phong Ce mod le ne pr voit pas la diffusion de la lumi re avec la distance b Le modele de Fresnel Le mod le de Fresnel est un mod le de Phong qui ne g re pas les r flexions de la m me mani re que le mod le de base Alors que pour Phong la r flexion est une r flexion sp culaire classique pour Fresnel la r flexion va tre diff rente selon le point de vue de l observateur et la longueur d onde de la lumi re Tout comme en lectromagn tisme le coefficient de Fresnel d pend de la fr quence de l onde donc de sa longueur d onde et des angles d incidences Nous n utilisons ici que le terme de r flexion Er champ r fl chit Ei champ incident La r flexion visible sera donc beaucoup plus r el car diff rente selon notre position par rapport l objet et selon la
15. gt OR cos 0 d gt w dEi gt Li gt COS 0 d gt avec Li gt On peut donc substituer Li dans l quation de rendu Lr x gt f fr x 2 S Dau cos 6 d SS Et ainsi obtenir Lr x gt IO gt En utilisant les informations sur les N photons voisins d une surface A on peut faire l approximation suivante gt fr x me p Pour avoir une estimation correcte de la luminance il faut avoir un nombre suffisant de photons i o m Photon Mapping et Raytracing Dans le module photon mapping de notre logiciel ARTGpu nous couplons un raytracing classique avec du photon mapping Cela permet d avoir un rendu rapide de la g om trie dans un premier temps Et une fois que le rendu de la g om trie est termin le photon mapping rentre en action afin de simuler avec plus de r alisme le rendu de la lumi re sur l objet Rendu effectu avec le module photon mapping Master Physique et Informatique Les m thodes de rendu expliqu es par la physique OO Rapport de Stage 4 La physique du Path tracing et MCMC Comme on l a vu dans le II la technique du path tracing est une m thode de rendu d images 3D qui consiste lancer des rayons dans des directions al atoires depuis l objectif de la cam ra jusqu a ce que ces rayons atteignent une surface g om trique chaque impact le rayon va rebondir une nouvelle fois en perdant de l nergie chaque rebond jusqu a atteindre la couleur noire ou un
16. lisant l ensemble des transferts ne peut tre rendu que globalement BRDF Bidirectional reflectance distribution function ou fonction de distribution de la r flectance bidirectionnelle C est un param tre pond rateur de la fonction de luminance r fl chie en un point qui d pend du mat riau de la surface r fl chissante au point de r flexion de la longueur d onde du rayon incident des directions incidentes et r fl chies au point de r flexion ainsi que de la g om trie de la surface Luminance En physique la luminance d une source est l intensit dans une direction donn e divis e par l aire apparente de cette source par unit d angle solide Eclairement L clairement d signe la puissance des radiations lectromagn tiques par unit de surface BEEN Pr sentation Master Physique et Informatique Rapport de Stage Pinhole camera st nop Pour faire simple on peut dire que le st nop fonctionne de la m me fa on que l oeil il capture des images invers es du visible Orthographic camera Une projection sans point de fuite les parall les restent parall les et les objets apparaissent toujours la m me taille Parfait pour des vues en coupe ou les vues isom triques L Ambient occlusion C est une m thode qui calcule uniquement l att nuation de la lumiere due l occlusion d un objet et ne tient pas compte de sa mati re ou de la couleur Principe En mettant des rayons dans toutes les direc
17. r dig es par mes soins dans le but d offrir au personnel de l Onera un aper u des techniques de programmations dans ces deux langages ainsi qu une aide sur le fonctionnement du logiciel Le r sum sur le format bdd est issu d un document technique interne l Onera Toutes les images de rendu 3d pr sentes dans ce rapport ont t cr es avec ARTGpu EN Pr sentation Master Physique et Informatique Rapport de Stage 2 L Onera The French Aerospace Lab article issu du site de l Onera A l issue de la deuxi me guerre mondiale les fondateurs de l Onera taient convaincus qu condition d aller r solument de l avant et de faire vite la France pouvait encore nourrir l ambition de se constituer une aviation moderne En 1946 les quipes de chercheurs d ing nieurs de techniciens et d ouvriers qui avaient t dispers es furent ainsi rassembl es pour construire l Onera Office National d Etudes et de Recherches A ronautiques Aujourd hui l Onera est un EPIC tablissement Public caract re Industriel et Commercial et ses activit s en font le premier acteur fran ais en recherche et d veloppement dans les domaines de l A ronautique de l A rospatiale et de la D fense Ses missions d velopper et d orienter les recherches dans le domaine a rospatial Concevoir r aliser mettre en uvre les moyens n cessaires l ex cution de ces recherches Assurer en liaison avec les services ou organismes
18. tails dans le V J ai donc ins r cette technique dans un nouveau module de la m me mani re que pour le photon mapping Ce module est int gr sous la forme d un nouveau projet Visual Studio qui g n re un ex cutable ARTPathTracing exe Le script nterface pl passe en param tres ce nouveau module les options de rendu chemins de fichiers et choix d environnements L clairage en temps r el et le choix de l environnement map ainsi que la gestion des jets sont similaires aux chapitres pr c dents et ne seront donc pas retrait es Cette m thode de rendu permet donc de faire l affichage d objet 3d obj comme nos modules pr c dents mais celui ci contient des sp cificit s qui lui sont propres En effet il g n re par d faut un ciel qui est une fonction miss voir d finition dans la partie raytracing Ce ciel ou sunsky est en fait plaqu sur une demi sph re au dessus de la bounding box donc de l objet qui est au centre de celle ci Le fonctionnement est le m me que pour l environnement map image de gauche Cependant selon notre point de vue le programme va calculer la partie du ciel afficher Mais on peut aussi changer la position du soleil le programme va alors calculer directement les nouvelles couleurs et ainsi simuler un coucher de soleil dans le cas ou l on place le soleil l horizon comme nous pouvons le voir sur les images ci contre On peut aussi associer a ce ciel soit une couleur unie soit un
19. Implements a ray primitive intersection test invoked during traversal gt Bounding Box Computes a primitive s world space bounding box called when the system builds a new acceleration structure overthe geometry Miss Called when a traced ray misses all scene geometry gt Visit Called during traversal of a Selector node to determine the children a ray will traverse Voici maintenant quelques notions importantes avoir en t te pour comprendre la programmation avec Optix Master Physique et Informatique ANNEXES e Rapport de Stage Buffers Optix utilise des buffers pour passer les donn es du host au device Ils sont cr s avant le lancement d un context et dirigent le flux de donn es entre les deux parties du programme Context Dans Optix le context est une interface de contr le pour configurer et diviser les tapes du moteur de rendu raytracing Il est cr avec la fonction rtContextCreat Ces objets encapsulent toutes les ressources disponibles dans Optix textures g om tries param tres d utilisation La destruction de cet objet par la fonction rtContextdestroy va nettoyer toutes les ressources utilis es et invalider toutes celles cr es par lui Lancer plusieurs context en m me temps est inutile car un context peut g rer plusieurs hardwares diff rents Entry Points Chaque context peut avoir plusieurs entry points pour le calcul Chaque point d entr e est associ un seul programme de g n ration de ra
20. aurait pas le temps de notre vivant car la puissance n cessaire pour calculer les chemins de chaque photon serait trop importante Aussi de nombreuses techniques d approximation ont t labor es La technique d Illumination Globale est la plus int ressante pour cr er des images de synth se qui tendent tre aussi r alistes que des images r elles Ces algorithmes calculent avec approximation l quation de rendu qui d crit le chemin et l interaction de la lumi re avec son environnement Le Path Tracing Le path tracing est une technique de lancer de rayon ray tracing utilis e pour d terminer l illumination globale d une sc ne 3D pouvant aller jusqu g n rer l image finale par une constitution progressive L image n est d abord qu un brovillard de pixels qui s affine progressivement jusqu a tre d barrass e presque compl tement de son grain Cette technique de rendu d images 3D consiste lancer des rayons dans des directions al atoires exemple ci contre depuis l objectif de la cam ra jusqu ce que ces rayons atteignent une surface g om trique chaque impact le rayon va rebondir une nouvelle fois en perdant de l nergie chaque rebond jusqu a atteindre la couleur noire ou une source lumineuse Les luminosit et couleur du tout premier point d impact seront donc une pond ration de la lumi re et la couleur de tous les rebonds qui ont eu lieu pour un rayon L int r t de cette m thode est qu e
21. avec des mesures effectu es sur un Mirage Ill On effectue donc une r gle empirique pour connaitre la temp rature de la tuy re du mod le aTturbine GText rieur Ttuyere Mon r le est donc de voir comment modifier et am liorer ce calcul afin de le rendre plus r aliste et pr cis 2 Les turbor acteurs Le turbor acteur est un syst me de propulsion essentiellement utilis pour les avions Un turbor acteur fonctionne sur le principe d action r action La variation de vitesse de l air entre l entr e et la sortie du r acteur cr e une quantit de mouvements d nomm e pouss e vers l arri re du moteur qui par r action engendre le d placement du moteur donc du v hicule sur lequel il est fix vers l avant Le turbor acteur fonctionne sur le principe des turbines gaz l admission l air est aspir par la soufflante puis comprim via un compresseur Du k ros ne est ensuite inject puis m lang avec l air au niveau de la chambre de combustion puis enflamm ce qui permet de fortement dilater les gaz Ces derniers s chappent du turbor acteur par la tuyere qui en raison de sa section convergente augmente la vitesse de l air L air passe au pr alable par une turbine permettant d entrainer le compresseur et les accessoires n cessaires au fonctionnement du r acteur Le mouvement est auto entretenu tant qu il y a injection de carburant En simplifiant l nergie de pression engendr e au sein du r acteur sera transf
22. charg s de la recherche scientifique et technique la diffusion sur le plan national et international des r sultats de ces recherches Favoriser la valorisation par l industrie a rospatiale et de faciliter ventuellement leur application en dehors du domaine a rospatial A ces divers titres il est notamment charg gt D effectuer lui m me ou de faire effectuer a son initiative ou a la demande toutes tudes ou recherches int ressant l industrie a rospatiale De r aliser des moyens d essais et de calcul au profit de la recherche et de l industrie a rospatiale et de les mettre en ceuvre gt D assurer la liaison avec les organismes fran ais trangers et internationaux dont l activit peut contribuer l avancement de la recherche a rospatiale gt D assurer la diffusion et la valorisation des r sultats obtenus en particulier par publications brevets licences d exploitation gt De promouvoir le lancement ou le d veloppement d initiatives utiles la recherche ou l industrie a rospatiale D assister en tant qu expert et la demande les organismes et services officiels D apporter son concours dans son domaine de comp tence la politique de formation la recherche et par la recherche 4 4 Le rayonnement international de l Onera n a cess de cro tre et 25 de ses activit s sont conduits en coop ration Enfin le taux de contrats europ ens par chercheur est deux fois plus lev que la moyenne des or
23. couleur de la source A gauche la r flexion dans le modele de Phong droite la r flexion avec le mod le de Fresnel Master Physique et Informatique Les m thodes de rendu expliqu es par la physique Fr Rapport de Stage 3 La physique du Photon Mapping Comme d finit dans la partie Il le photon mapping est un algorithme en deux passes Nous allons voir dans la suite comment fonctionne ces deux passes First Pass Photon Tracing Le photon tracing est le processus d mission de photons par la source de lumi re et de trac de ces photons dans la scene Le but premier de cette pass est de g n rer la carte des photons qui sera utilis e dans la pass de rendu pour calculer les r flexions et l illumination des surfaces Photon Emission La vie d un photon commence la source de la lumi re Pour chaque source de lumi re on d finit un nombre de photon et une puissance Plus la source est lumineuse plus elle envoie de photons Photon Scattering Lorsque le photon est mis de la source il voyage dans la scene voir sch ma ci contre parcours des photons dans la sc ne et peut tre soit absorb soit perdu Quand un photon rencontre un objet on peut d cider combien d nergie est absorb combien est refl t combien est r fract gr ce au param tre de surface des mat riaux de l objet En plus lors de l intersection c est un processus al atoire type roulette russe qui va d cider si le photon est
24. cution de ce code et l utilisation du raytracer GPU beaucoup plus rapide voir la lettre de mission ci dessous DESCRIPTION DU STAGE Domaine d tude Lancer de rayons sur GPU Type de stage 4 Fin d tudes bac 5 X Master 2 recherche Bac 2 bac 4 Intitul Impl mentation d une technique de subdivision de l espace et int gration dans un code de signature d a ronefs Sujet Le D partement Optique Th orique et Appliqu e DOTA d veloppe depuis de nombreuses ann es des outils de mod lisation de la signature infarouge des a ronefs Il a ainsi d velopp le code de calcul du rayonnement infrarouge des a ronefs CRIRA Ce code foumit des estimations de signature par une m thode de lancer de rayons stochastique Un portage de ce code est en cours pour r aliser des calculs parall les sur GPU CUDA C sur Windows Une tude pr liminaire en cours de finalisation permettra de s lectionner le type de m thode de subdivision de l espace la mieux adapt e au code Crira L objectif du stage est d impl menter cette m thode et de l int grer dans le code de signature Les principales etapes du stage sont les suivantes impl mentation en C d une technique de subdivision de l espace compatible d une utilisation avec CUDA probablement kd tree ou BVH Int gration dans Crira R alisation de cas tests repr sentatifs g om tries d avions et comparaison avec la version CPU du code Master Physique et Infor
25. duire Mais dans ARTGpu pour viter l effet d escalier on renvoie un second rayon dans le pixel une position diff rente du premier rayon Ce processus va sUbdiviser le pixel et donc augmenter ces d tails ce qui aura pour effet de supprimer l effet d aliasing EM D veloppement et programmation Master Physique et Informatique NB Il faut bien faire la diff rence entre un pixel de l image et un pixel mat riel qui compose l cran un pixel de l image peut tre affich par plusieurs pixels mat riels Rendu d un objet 3d avec en haut l option antialiasing d sactiv et en bas l option activ e Enfin pour rendre le rendu des objets encore plus r aliste nous allons prendre en compte la notion de mat riaux Un objet obj pourra donc avoir une couleur unie g rer par les coefficients de diffusion ambiante r flexion diffuse r flexion sp culaire qui sont d finis dans le fichier mtl Si un objet est d coup en groupes chaque groupe pourra avoir son propre mat riau tous les mat riaux sont d finis dans le fichier mtl pour plus d informations sur ces fichiers rendez vous dans l annexe Nous pouvons aussi assigner a des objets ou des groupes dans un objet des textures images qui seront appliqu es sur l objet Le fonctionnement d taill pour la gestion des mat riaux est expliqu juste apres Rendu d un objet avec gauche une couleur unie en guise de mat riau et droite utilisation des textures imag
26. graphique ci dessous qu il faut trouver une solution de d veloppement volutive intuitive et qui ne sera pas d pass e dans les ann es venir Theoretical GFLOP s 1750 GeForceGTX 580 te NVIDIA GPU Single Prec sion 1500 NVIDIA GPU Double Precision GeForceGT X 480 y ntel CPU Single Precision Intel CPU Double Precision 1250 1000 GeForceGT x 281 750 GeForce8800 GTX Tesla C2050 500 250 GeForce 7800 GTX Westmere GeForce6800 Ultra Tesla C1060 GeForceFX 5800 Woodcrest 0 Har pertown sep 01 203 Jun 04 Oct 05 Mar 07 Jul 08 Dec 09 Evolution des performances des GPU et CPU source google image 2 Les possibilit s J ai r alis dans un premier temps une recherche bibliographique afin d identifier des librairies permettant de g n rer des structures acc l ratrices ll s av re que la programmation d une telle structure sous GPU est complexe et sort du champ de ce stage un algorithme r cursif de CPU ne pouvant pas tre impl ment sur un GPU L id e retenue est soit d utiliser une structure et l adapter la structure de donn es de Crira soit d utiliser une librairie plus g n rique ne n cessitant pas d adaptation de la structure de donn es La premi re possibilit n est pas volutive et de plus le choix d une m thode n est pas optimal selon le contexte d emploi Si on parle maintenant de parall liser du code source sous GPU deux choix s offrent nous CUDA avec sa maturit
27. le photon mapping je n ai pas r ussi int grer les jets ce module Master Physique et Informatique D veloppement et programmation EF Rapport de Stage d Mise en place du Photon Mapping Afin de fournir une application de d monstration compl te et capable de faire des rendus de types diff rents la d cision a t prise d ajouter un module de rendu en photon mapping Pour garder une application optimis e et rapide j ai d cid de s parer les deux modules de rendu en deux ex cutables et donc deux projets Visual Studio distincts On a donc ARTRaytracing exe pour le raytracing et ARTPhotonMapping exe pour le photon mapping Construire l application de cette facon permettra dans le futur d ajouter facilement d autre module J ai modifi le script nterface pl afin qu il propose l utilisateur quel module choisir pour le rendu Une fois le choix entr par l utilisateur et les options choisies le script va ex cuter le module correspondant en lui passant en param tres argc et argv les options Le script materiaux pl va si on s lectionne le module de photon mapping modifier automatiquement le fichier mtl associ la g om trie afin de le rendre compatible avec ce type de rendu modification du param tre illum 2 en illum 3 explication en annexe dans la partie fichier obj Je me suis donc inspir d un des samples du SDK d Optix pour d velopper ce module de photon mapping Ce module r cup re dans le tableau de
28. les stagiaires Gwen Badisse Thomas Jacques doctorant Nicolas et personnels du centre Nicolas avec qui j ai pass de tr s bons moments Enfin Je remercie la Patroville de France et la base militaire 701 pour le cadre et les spectacles a riens pendant nos pauses repas 6 Pr sentation Master Physique et Informatique Rapport de Stage Master Physique et Informatique Pr sentation BE Rapport de Stage I Pr sentation 1 Le stage et son rapport Mon stage au sein de l Onera s est d roul du 19 mars au 17 aout Durant ce stage je devais mettre en place un d coupage de l espace pour acc l rer le raytracer sous CUDA et ainsi acc l rer la pass2 du logiciel Crira La recherche d une solution technique a t effectu e dans une premi re tape et nous a conduit choisir le d veloppement d un nouvel outil sous Optix Mon stage fait appel des notions techniques que nous n avons pas l habitude de rencontrer j ai construit le rapport de tel sorte qu elles soient expliqu es au fur et mesure afin d amener le lecteur tout comprendre sans l aide de documents annexes Certaines parties ne sont l que dans un but d informations et ne sont pas issues de mon travail elles sont alors clairement identifi es Voici la description de la construction du rapport La partie est une pr sentation g n rale de l entreprise du laboratoire d accueil du projet et de l
29. mes pour toutes les facettes Comparatif Pour mieux visualiser comment interagissent les trois types de texture entre elles j ai effectu un petit comparatif avec le m me objet Les coefficients Ka Kd et Ks sont mis a donc seules les textures map Ka map Kd et map Ks vont compter L objet va recevoir toutes les combinaisons de texture possible afin de voir les diff rences et les apports de chaque partie EE D veloppement et programmation Master Physique et Informatique Texture Ka Ks Texture Ka Kd Texture Kd Ks Texture Ka Kd Ks Texture Ka Kd Ks Ns 0 0 Texture Ka Kd Ks Ns 25 0 Texture Ka Kd Ks Ns 50 0 Texture Ka Kd Ks Ns 100 0 Comparatif de rendu selon les textures appliqu es pour un m me objet Le param tre Ns permet de pond rer la texture sp culaire ou le coefficient Ks Plus Ns est faible et plus l effet le pique sp culaire est fort A l inverse plus Ns augmente et plus l effet sp culaire s tend et s estompe Ns peut prendre les valeurs de 0 0 1000 0 A ce stade nous pouvons nous permettre de faire des tests de performances de notre raytracer selon la complexit de la g om trie selon le type de rendu que l on demande et selon la structure acc l ratrice utilis e Il faut bien se rappeler que nous sommes en temps r el la performance se mesure donc en FPS frame par seconde et en seconde pour la construction de l arbre Pour plus d homog n it dans le test et pour vraiment comparer les perf
30. ne contient un objet un personnage textur avec des images sans mat riaux r fl chissants C est clairement le raytracing qui prend l avantage car il affiche instantan ment un rendu quasi parfait La sc ne tant un objet sans effet particulier la puissance du module lui permet de r ussir sans probl me Pour le photon mapping le rendu est basique gr ce la pass de raytracing l clairage qui devrait tre beaucoup plus r aliste n a pas le temps d tre calcul correctement en trente secondes On perd donc le principal int r t de cette m thode de rendu Enfin pour le path tracing Il y a bien prise en compte des textures cependant dans ce cas c est le temps de calcul qui n est pas assez long on remarque du grain et des imperfections sur l objet Scene pool2 obj eau compl tement sp culaire Rendu de gauche droite raytracing photon mapping et path tracing Pour cette derni re sc ne nous avons une boite diffuse et un plan d form sp culaire Pour le raytracing les r flexions difficiles engendr es par le plan d form sp culaire offre un rendu pas du tout satisfaisant Le photon mapping se plante aussi car le temps de rendu est bien trop court pour qu il puisse rendre la sc ne correctement cause de toutes les r flexions possibles Cependant le path tracing domine largement en termes de prise en compte des effets mais aussi en qualit de rendu Conclusion Nous remarquons facilement que chaque module
31. o do HeMeM i I Bn E CORE DCH MECH RE NL m bebe EE ZEE Q T peek E E A E A HEB e ne y He LERRA OMNE d E E S mE ua EZ iil E EE i KENN U WEE MM A TT AS E PAPA CS ND il N d e N U o0 D un U D Y ie O e a ac n3 Epro aydd MOS Diagramme de fichiers pour ARTGpu c o o 0 is Oo O Lu Q OU G OU z OU o oa O OU gt Q m OU gt E fe o Lu O uc E OU OU E un gt Lan D is OU un o 2 Rapport de Stage g Fonctions communes probl mes et solutions J ai ajout deux options importantes dans notre logiciel ARTGpu cependant ces fonctions ne fonctionnent pas comme je le voulais La premi re option est le chargement de plusieurs fichiers obj contenant une g om trie 3D J ai donc modifi les codes sources afin de prendre en compte cette nouvelle possibilit Apr s de nombreux jours de tests et de programmation j ai r ussi mettre en place ce chargement multiple pour le raytracing et pour le path tracing Cependant pour le photon mapping cette option ne fonctionne pas car on n utilise pas des g om tries group comme dans les autres modules La fonction ainsi cod e ne peut donc pas s int grer et je n ai pas a ce jour trouv d astuce pour contourner ce probl me Pour charger plusieurs obj il faut attribuer a chaque fichier obj une g om trie groupe Lors du charge
32. param tres le chemin du fichier obj charger les options d environnement couleur unie ou environnement map et le temps de rendu souhait Le module g re donc la plupart des options int gr es au raytracing comme la modification du soleil en temps r el le choix du temps de rendu je ne reviendrai donc pas sur ces aspects d j trait s Cependant le photon mapping fonctionne diff remment car il utilise un raytracer dans son calcul En effet pour afficher l objet le module de photon mapping effectue un raytracing classique Le photon mapping proprement parler ne commence qu ensuite car le but du photon mapping est le rendu r aliste des lumi res et de l clairage Avant son d marrage le module vous demandera plusieurs param tres comme la puissance des lumi res la taille de la lumi re et la taille des photons et ensuite il affichera l image On remarque bien avec ce rendu que l un des principaux avantages du photon mapping est la gestion tr s r aliste des reflets gr ce au support des caustiques voir image ci dessous Rendu d une sc ne en photon mapping avec apparition de caustiques Cependant on perd l aspect temps r el car il faut laisser le temps au programme de g n rer assez de photons pour rendre l image exploitable Ci dessous un autre exemple de rendu Rendu de 30 secondes en photon mapping gauche et en raytracing classique droite gente sp culaire et disque de frein diffus Er D veloppe
33. plus traditionnel J ai choisi que ce format sera le png Apr s avoir converti les images le script va couper coller les images ppm et png dans un dossier de r sultats qui sera cr l endroit o la g om trie 3d se trouve afin d avoir toutes les donn es centralis es au m me endroit La gestion des Jets Lors du choix des options on a la possibilit de prendre en compte les jets des appareils Les param tres et aspects 3d des jets sont contenus dans le fichier jet SDM calcul au pr alable par Crira Ce fichier est au format bdd est doit tre converti au format obt Pour cela le script Interface pl fait appel au script jets pl qui va convertir et sauvegarder la g om trie des jets dans le fichier jet SDM obj au format obj Une fois cette op ration faite et le fichier jet cr l utilisateur a la possibilit de choisir dans les param tres d utiliser un ou deux jets selon la g om trie de l avion s lectionn ARTGpu va ensuite charger la g om trie et l int grer dans la sc ne en respectant les param tres Lors du chargement des jets j ai int gr dans le code source une matrice de transformation qui nous permettra de positionner correctement les jets derri res les tuy res Pour l instant les jets ne se positionnement pas correctement C est toujours une option en d veloppement Cette option est disponible pour le raytracer et compatible avec le path tracing Le chargement des obj se faisant de mani re diff rente dans
34. sommets Les lignes commen ant par un di se sont consid r es comme des commentaires Master Physique et Informatique ANNEXES ELM Rapport de Stage 4 Manuel d utilisation ARTGpu a Installation version d veloppeur Pour installer le logiciel il faut suivre plusieurs tapes Il faut au pr alable avoir install Visual Studio 2008 de pr f rence le toolkit CUDA le SDK OPTIX et MinGW et Cmake T l charger Cmake http www cmake org cmake resources software html Copier le dossier ART GPU dans le dossier par d faut d installation d Optix C Program Files NVIDIA Corporation OptiX SDK 2 5 0 Lancez l application cmake gui et d finir le chemin de vos sources C Program Files NVIDIA Corporation OptiX SDK 2 5 00ARTGpu Project et le dossier destination qui contiendra tous les fichiers de compilations ex cutables par exemple C Users X Documents ARTGpu_ Project Cliquez sur configurer et choisir dans la nouvelle fen tre votre IDE exemple Visual Studio 2008 ATTENTION bien choisir x64 si l IDE fonctionne en 64bits et x32 s il fonctionne en 32 bits Et cliquer OK Cmake va mouliner et des informations vont apparaitre sur votre cran File Tools Options Help Where is the source code C Program Files NVIDIA Corporation OptiX SDK 2 5 0 ARTGpu Project Browse Source Where to build the binaries C Users Emmanuel Documents ARTGpu Project v Browse Build Search Grouped Advanced gi Add Entry
35. 7 par le rayon Ouand le rayon entre dans un noeud du kd Tree qui a Otisets Structure deux fils l algorithme d cide si les deux fils sont travers s et dans quel ordre ll d termine parmi les deux fils du noeud travers le n ud le plus porche near et le plus loign far en fonction de la Triangle List Intersect K RS N P gne far position de l origine du rayon par rapport au plan s parateur Lorsque le rayon traverse uniquement l un des deux fils I l algorithme descend dans ce nouveau n ud et r it re Lorsque le Triangles pi Triangles H Normals gt Shade Hit rayon traverse les deux fils l algorithme sauvegarde les Materials and Generate informations du fils far descend dans le fils near et r it re Si Iia ed eme Shading Ravs aucune intersection n est trouv e l int rieur de ce fils near l algorithme va alors dans le fils far et r it re D roulement d un raytracing avec no ad Pour l impl mentation on utilise les valeurs tmin et tmax qui structures acc l ratrices source Nvidia correspondent aux distances d entr e et de sortie du rayon dans le n ud visit par rapport a l origine du rayon voir figure ci dessous On calcule galement chaque it ration la distance tsplit qui correspond a la distance entre le point d intersection du rayon avec le plan s parateur et l origine du rayon Ces trois valeurs permettent alors de d terminer quels fi
36. Chacun de ces flux est d fini par ce code comme une s quence d une copie de l h te au p riph rique d un appel de kernel et d une copie du p riph rique vers l h te for inti 20 i 2 i cudaMemcpyAsync inputDevPtr i size hostPtr i size size cudaMemcpyHostToDevice stream i for inti20 i 2 i mykernel lt lt lt 100 512 0 stream i gt gt gt outputDevPtr i size inputDevPtr i size size for inti20 i 2 i cudaMemcpyAsync hostPtr i size outputDevPtr i size size cudaMemcpyDeviceToHost streamli cudaThreadSynchronize Chaque flux copie sa portion du tableau hostPtr vers inputDevPtr dans la m moire du p riph rique traite ce dernier tableau et copie le r sultat outputDevPtr sur l h te dans la partie correspondante de hostPtr cudaThreadSynchronize est appel e la fin pour s assurer que tous les flux ont fini de s ex cuter avant d essayer d utiliser leur r sultat cudaStreamSynchronize peut tre appel e pour synchroniser un flux pr cis avec tous les autres flux qui continuent leur ex cution normale cudaStreamDestroy est utilis e pour la destruction d un flux cudaStreamQuery permet de v rifier que toutes les op rations du flux d ja envoy es soient bien effectu es Tout appel de kernel ou op ration de m moire sans le parametre de flux ne commence qu la fin des autres op rations Ces op rations sont affect es au flux o ENTM ANNEXES Master Phys
37. Gpu Outils de rendu Information syst me Compatibilit About Quitter Fichier de g om trie choisie Choix Vous vous trouvez dans le menu principal de ARTGpu Vous avez donc plusieurs choix entrer le chemin vers le fichier obj lancer le rendu de la g om trie il faut bien s r en avoir rentr e une avant tester la compatibilit de son poste de travail afficher les informations de ARTGpu et enfin quitter Si on veut effectuer un rendu la premi re chose faire et de rentrer un fichier obj commande 1 dans le menu Entrez le chemin vers le fichier obj en utilisant la notation linux c puis Entr e Choix 1 Veuillez entrer le chemin vers le fichier obj Apr s avoir entr la g om trie vous verrez votre choix s afficher dans le menu Menu Principal i Choisir une g om trie 3D ob J Lancement RTGpu Outils de rendu 3 Information syst me Compatibilit 4 About L Quitter Fichier de g om trie choisie c 0bjFiles rafale ob j Choix Vous pouvez maintenant lancer un rendu avec la g om trie s lectionn e en utilisant la commande 2 du menu n 0 00000 0000 D D O 0 n n 0 n Bienvenue dans RTGpu vi Juin 2612 Logiciel de d monstration technique rendu graphique Choix du module de rendu Path Tracing MCHG Raytracing PhotonMapping Vous avez maintenant trois choix ces choix sont les m mes pour les trois modules de rendu gt miss U
38. HP Welle e Attelage haute perssion Master Physique et Informatique Modele thermique appliqu aux tuy res dans Crira EF Rapport de Stage Simple ou double flux Les moteurs sont dits simple flux quand la totalit de l air admis traverse le moteur et actionne les turbines Les turbor acteurs simple flux sont tr s bruyants et n atteignent leur meilleur rendement qu au del de Mach 1 exemple de turbor acteur simple flux simple corps image pr c dente Bien plus conomiques aux vitesses subsoniques et Compresseur Turbine moins bruyants les turbor acteurs double flux Soufflante haute pression haute pression image ci contre sont apparus dans les ann es Bou ae 1960 Dans ces moteurs les premiers tages du compresseur basse pression souvent r duits la gt soufflante sont de grandes dimensions pour aspirer de grandes quantit s d air L air pr comprim par la soufflante ne passe pas int gralement par le moteur mais une partie le flux froid le contourne par sa p riph rie jusqu la tuy re oU il est ject avec les gaz chauds flux Axe de turbine chaud De plus selon le type de turbor acteurs basse pression les deux flux froid et chaud ject s vont tre soit Compresseur Chambre de Turbine Tuy re basse pression combustion basse pression m lang s soit s par s Ce second flux n est pas m lang mais vient gainer le flux primaire fortement ac
39. Mais cette tape est indispensable si on veut pouvoir avoir un outil volutif et comp titif Optix tant une technologie tr s jeune il n existe pas de cours ou de ressources pour aider dans le d veloppement J ai donc utilis comme support des samples fournis avec le SDK pour me faire une base et d velopper ensuite ma propre solution de raytracing Ces samples sont Open Source et peuvent tre utilis s des fins commerciales Je suis donc parti d un exemple tres simple de raytracing et la premi re tape a t de le nettoyer des fonctions inutiles de le commenter et de le rendre viable notre projet le pr parer au futur ajout Ceci tant fait j ai pu mettre en place la version alpha de mon raytracer Cette version alpha tait tr s basique elle chargeait un fichier de g om trie 3d obj unique et affichait cet objet dans une fen tre dans laquelle il tait possible de naviguer La navigation dans la scene se fait gr ce a OpenGl qui se charge de l affichage et de la fen tre windows Le calcul pur est r alis par Optix et Cuda Le rendu tel qu il tait dans la version alpha du raytracing Master Physique et Informatique D veloppement et programmation EN Rapport de Stage Le deuxi me point important r gler tait la possibilit de charger n importe qu elle fichier obj et pr parer le logiciel ARTGpu recevoir sa futur interface Cette Interface qui sera un script perl fera l interm diaire entre l
40. Rapport de Stage Crira Advanced Rendering Tools R alisation d une solution de rendu graphique sous GPU Amelioration d un modele thermodynamique EMiranueltterENrTrelitn Master Physique et Informatique E Rapport de Stage Informations compl mentaires sur le rapport de stage Si vous voulez utiliser ou vous faire une id e des performances de ARTGpu vous pouvez l installer sur votre machine la version utilisateur il faut une carte Nvidia compatible Cuda de type Fermi minimum n cessite MinGW ou la version d veloppeur il faut une carte Nvidia compatible Cuda architecture Fermi avoir install Cuda Toolkit et Optix SDK ainsi que Visual Studio Express Cmake et enfin MinGW Lien de t l chargement ARTGpu version utilisateur https www dropbox com s 4r79rvbpla334v8e ARTGPU Version Utilisateur rar Lien de t l chargement ARTGpu version d veloppeur https www dropbox com s gsehqqs9idnkofx ARTGPU Version Developpeur rar Pour vous aider dans l installation et l utilisation vous trouverez en annexe un manuel d utilisation de ce logiciel Master Physique et Informatique Pr sentation EM Rapport de Stage Sommaire l PRESENTATION 2 2 20299504 SUME EAE DUDEN bs 8 LESTAGE ET SON RAPPORTS MM Ed MIL M SD M MM TIUS 8 2 L ONERA THE FRENCH AEROSPACE LAB ARTICLE ISSU DU SITE DE L ONERA iii 9 3 eE DOTA E 10 4 AI 10 5 ERP OET ae es D 11
41. Remove Entry Name Value Fen tre de configuration Cmake Cliquez une nouvelle fois sur configurer puis sur g n rer ARTGpu est pr t tre compil Rendez vous dans le dossier destination que vous avez d fini pr c demment et ouvrez le fichier sin qui vous ouvrira VS2008 Faite un build du projet Build Build Solution Maintenant que le build est termin les ex cutables de ARTGpu sont disponibles Pour finir il faut modifier le path dans le script perl Start pl my chemin C Users xxxxxxxxxx Documents ARTGpu_Final bin Debug Remplacer le chemin par le v tre Les scripts perl et l ex cutable nconvert exe doivent tre dans le r pertoire Debug de la solution donc dans le m me r pertoire que les ex cutables Et ensuite lancer le script vous devez utiliser Mingw perl Start pl Voil ARTGpu est utilisable b Installation version utilisateur R cup rez le fichier ARTGpu setpu exe et installez le comme n importe quel logiciel windows La version utilisateur ne permet pas de modifier le code source On ne peut pas non plus choisir le r pertoire d installation pour des raisons de fonctionnement dans le code source EAS ANNEXES Master Physique et Informatique di N H Lancement du script perl gr ce MinGW perl Start pl ou gr ce au raccourci version utilisateur 00000 0000 o 0 O 0 d 0 0 26 6 2612 dota vinci Choisir une g om trie 3D obj Lancement ART
42. Timo Aila Samuli Laine Logiciel 3D blender www blender org ED Bibliographie Webographie Master Physique et Informatique Rapport de Stage Partie III Probl matiques et solutions Rapport de stage de Charles Thierry A Performance Comparison of CUDA and OpenCL Kamran Karimi Neil G Dickson Firas Hamze Partie IV D veloppement et programmation Langage de programmation perl c cuda optix www lesiteduzero com www developpez org http formation perl fr www nvidia com et tous ses sous domaines forums Banque d objet obj et utilisation de Nview http artist 3d com WWW xnview com Partie V Les m thodes de rendu Comprendre les diff rentes techniques de rendu graphique http web cs wpi edu http graphics ucsd edu iman BDPT http biblio alloprof qc ca Ray Tracing on GPU Martin Christen Ray Tracing on GPU Nitish Jain Ray Tracing Irisa Kadi Bouatouch A Markov Chain Monte Carlo technique for rendering scenes with difficult specular transport Universit de Cornell Wenzel Jacob Steve Marschner Partie VI Mod le thermique D finition turbor acteur et tuyere http lavionnaire fr Cours de Thermodynamique Olivier Cleynen Cours d A rothermodynamique Dr Henni MansourZ Thermodynamique technique J F Devois Fluides Compressibles Pascal Bigot ANNEXES Fiche de programmation Optix et Cuda www nvidia com et tous ses sous domaines forums De nom
43. a sc ne Chaque photon a une nergie de d part qui d croit au fur et mesure de son parcours et de ces rebonds pour participer la fin a l clairement de la scene et de l objet DEBUT G n ration de la grille de photons par d faut 256 256 Les photons parcours la sc ne FIN Les photons r cup rent de cette source lumineuse une certaine nergie Emission de 10 photons par pixel de la grille Les photons sont envoy s travers la source lumineuse d finie par sa 4 puissance et son rayon Cycle de vie des photons dans la sc ne Ce cycle est valable pour une image nous sommes en rendu progressif ce cycle est ex cut plusieurs fois par secondes car notre rendu est effectu plusieurs images par secondes Master Physique et Informatique D veloppement et programmation E Rapport de Stage e Mise en place du Path Tracing Markov Chain Monte Carlo Toujours dans l esprit d avoir un logiciel complet qui permet de faire des comparaisons entre plusieurs techniques de rendu il a t aussi d cid d int grer un module de path tracing dans ARTGpu Cependant toujours cause de la jeunesse du SDK Optix il a t beaucoup plus difficile de trouver des exemples documents et informations sur ce type de rendu C est un peu par hasard que je suis tomb sur un path tracing bidirectionnel avec m thode Markov Chain Monte Carlo cette m thode sera expliqu e en d
44. a son type de sc ne et que chacun doit rester dans ses champs de comp tences si l on veut garder des rendus corrects Le raytracing sera donc plus performant sur les objets 3d sans effet et r flexion avec ou sans textures Le photon mapping tirera son pingle du jeu pour des rendus d objets avec des courbes o les caustiques sont nombreuses Et enfin le path tracing se r v lera redoutable pour les sc nes faisant appel de nombreux effets physiques et des r flexions tr s compliqu es Ces tests bien qu int ressant ne sont pas parfaits En effet les trois modules sont programm s de mani res bien diff rentes Par exemple pour les deux premiers modules la lumi re est une source ponctuelle qui ne faiblira pas avec la distance alors que pour le path tracing nous avons un soleil qui prend en compte la distance avec l objet et donc l att nuation de l illumination Ce n est qu un exemple mais il y a de nombreux petits d tails qui emp chent de faire des tests identiques entre chaque module Us Les m thodes de rendu expliqu es par la physique Master Physique et Informatique Rapport de Stage Master Physique et Informatique Modele thermique appliqu aux tuy res dans Crira EFE Rapport de Stage VI Modele thermique appliqu aux tuyeres dans Crira Comme nous l avons vu pr c demment Crira est un logiciel qui a pour but principal d tablir la signature infrarouge SIR passive d un a ronef en vol en fonction de p
45. absorb r fl chi r fract Photon Storing La photon map est stock e dans un kd tree Second Pass Rendering Pendant la seconde pass il va falloir r soudre l quation de rendu approximative afin de calculer l illumination r fl chie sur les surfaces Lr x gt fre ui x gt COS dd Avec D x un point de la surface gt w la direction de la radiance entrante w la direction de sortie gt frla BRDF gt Lila luminance incidente au point x gt cosdi la projection de la surface par l angle solide gt du l angle solide gt Ole demi h misph re au dessus de x Dans l quation ci dessus on integre sur tous l h misph re sup rieur la radiance entrante par l angle solide vu par x On peut utiliser une densit approch e pour estimer l illumination en interrogeant les plus proches N photons de la carte de photons Cette estimation nous donne le flux entrant Sch ma repr sentant la zone des N plus proches voisins F2 Les m thodes de rendu expliqu es par la physique Master Physique et Informatique Rapport de Stage La luminance nous donne approximativement combien de lumi re est arriv e sur un surface donn e Autrement dit la luminance incidente est la somme de tous les photons Di qui est arriv e sur une unit de surface n y2 2 1 0 Avec un angle solide diff rent dw la quantit l mentaire d clairement dEl peut tre exprim e en fonction de la luminance dEi
46. alloc alloue un objet dans la m moire globale du device cudaFree lib re l objet de la m moire globale du device cudaMemcpy copie des donn es de l h te vers le device Les Flux streams Un flux est une source de donn es comme un fichier la m moire ou le r seau Dans CUDA il ne s agit pas exactement de la m me chose Pour faciliter les ex cutions concurrentes entre h te et p riph rique certaines fonctions sont asynchrones dans le runtime la partie de CUDA que nous apprenons l application r cup re le contr le avant que les calculs soient enti rement effectu s Ainsi il arrive fr quemment que plusieurs de ces fonctions soient en cours d ex cution en m me temps elles sont concurrentes Ces fonctions sont les suivantes gt cuLaunchGrid GG cuLaunchGridAsync gt Les fonctions de copie suffix es Async gt Les copies du p riph rique vers le p riph rique gt Les appels de kernels avec des fonctions global Les applications s occupent de la concurrence via des flux Un flux est une s quence d instructions qui doivent s ex cuter dans un certain ordre D un autre c t des flux peuvent arr ter leur ex cution pour un autre flux Un flux est d fini en cr ant un objet flux et en le sp cifiant a un appel de kernel ou une copie de m moire Par xempl r x flux exemple ce code cr e deux flu cudaStream t stream 2 for inti20 i 2 i cudaStreamCreate amp stream i
47. aram tres d environnement globaux et propres l avion Depuis le d but du stage je me suis surtout int ress la pass2 et mon outil ARTGpu Mais pour me donner du recul sur cet outil et pouvoir le finaliser je vais m int resser pendant un mois la passa Cette Passa calcule les param tres g n raux en fonction de la sc ne que l on souhaite et calcul le les jet s Pendant ce calcul des jets elle calcule aussi la temp rature des tuy res de l appareil C est ce moment que j interviens Le mod le thermique est tr s basique et doit tre modifi Je vais donc essayer de trouver les pistes et les am liorations possibles que l on pourrait apporter 1 Le modele thermique actuel A l heure actuelle la passa contient des mod les de turbor acteurs qui calculent les param tres de sorties de turbines temp rature vitesse Ces mod les de turbor acteurs le fonctionnement des turbor acteurs sera expliqu plus loin sont les suivants gt Turbor acteur double flux double corps flux m lang s gt Turbor acteur double flux simple corps a flux m lang s gt Turbor acteur double flux double corps a flux s par s gt Turbor acteur simple flux simple corps Cependant ces mod les alors qu ils calculent tous les param tres en sortie de turbines ne contiennent aucune fonction ou mode le pour le calcul de la temp rature de la tuy re Actuellement la temp rature de la tuy re est calcul e par comparaison
48. aussi appel e significande voir ci dessus et un exposant e Un tel triplet repr sente un r el s m b e o b est la base de repr sentation En faisant varier e on fait flotter la virgule d cimale G n ralement m est d une taille fix e Ceci s oppose la repr sentation dite en virgule fixe o l exposant e est fix Un nombre virgule flottante peut tre simple pr cision ou double pr cision Encodage Signe Exposant Mantisse Valeur d un nombre Pr cision Chiffres significatifs Simple 32 bits ibit 8 bits 23 bits Sig x M x 24 127 24 bits 7 pr cision Double 6 bits ibit 11bits 52 bits a x M x 918 1023 53 bits 16 pr cision Un arbre binaire est une structure de donn es qui peut se repr senter sous la forme d une hi rarchie dont chaque l ment est appel n ud le n ud initial tant appel racine Dans un arbre binaire chaque l ment poss de au plus deux l ments fils au niveau inf rieur habituellement appel s gauche et droit Du point de vue de ces l ments fils l l ment dont ils sont issus au niveau sup rieur est appel pere Master Physique et Informatique Pr sentation EE Rapport de Stage Remerciements Je tiens remercier tout particuli rement Eric Coiro pour l offre de stage pour son accueil pour sa disponibilit ses explications et sa gentillesse Je remercie aussi le centre Onera de Salon de Provence qui m a permis de passer ce stage dans les meilleures conditions mais aussi
49. aut ce temps de rendu est de 10 secondes mais gr ce cette option vous pouvez augmenter ou diminuer ce temps Temps de rendu de 1 seconde gauche et de 10 secondes droite EE D veloppement et programmation Master Physique et Informatique Rapport de Stage ll est vrai qu il est difficile de remarquer les diff rences entre ces deux images mais taille r elle on remarque du grain et des imperfections sur l image de gauche L autre option que j ai impl ment c est la possibilit de modifier en temps r el la position du soleil On modifie ces coordonn es x y et z gr ce au touche du clavier et on voit directement le changement dans la fen tre OpenGL Cette option est pratique car elle permet de changer l clairage sans toutefois recharger ou relancer le programme Modification de la position du soleil en temps r el sans recommencer le calcul La conversion automatique des images Lorsque l on effectue un calcul avec ARTGpu on a la possibilit de sauvegarder une ou plusieurs images du rendu effectu Ces images sont enregistr es dans le dossier contenant les ex cutables et sont au format ppm C est un format de fichier sans perte mais qui n est pas interpr t nativement par windows Pour rem dier ce d sagr ment le script nterface pl fait appelle un script convert pl qui va explorer le dossier contenant les ex cutables v rifier la pr sence de fichiers images ppm et les convertir dans un format
50. avail chang s au cours des quatre parties du cycle Compression isotherme 1 2 W12 h2 h1 q12 avec h2 h1 o gaz parfait Et en supposant l change de chaleur r versible q12 Tf s2 s1 o Chauffage isobare2 3 q23 h3 h2 D tente isotherme 3 4 W34 h4 h3 q34 avec h4 h3 0 gaz parfait Et en supposant l change de chaleur r versible q34 Tc s4 53 gt o Refroidissement isobare 4 1 941 h1 h4 On a donc q23 q41 Les diff rents types de turbor acteurs d finitions issues de wikip dia et l avionnaire Simple et multi corps On appelle corps un ensemble compresseur turbine accoupl s sur un m me arbre et tournant donc la m me vitesse Un turbor acteur peut tre mono double ou triple corps Dans les premiers turbor acteurs turbine et compresseur forment un unique ensemble cin matique On parle alors de compresseurs moteurs simple corps ou simple attelage image ci contre Pour accro tre l efficacit du turbor acteur le compresseur est d sormais divis en deux parties successives une basse pression et une haute pression mues par deux turbines successives m A uda haute et basse pression On parle alors de combustion turbor acteurs double corps ou double attelage voir image ci dessous Compresseur Axe de turbine Turbine Attelage basse pression Compresseur et turbine BP Manche PI avion air Compresseur et turbine
51. breux ouvrages papiers ont aussi t utilis comme les livres de physiques aux ditions Dunod et informatiques aux ditions Person mais cela prendrais trop de place tous les citer Master Physique et Informatique Bibliographie Webographie EN Rapport de Stage IX ANNEXES 1 La programmation avec Cuda IL sera trait dans cette annexe Les d finitions et Les notions essentielles de programmation Pour tout ce qui est comment fonctionne CUDA voir dans Le rapport de stage partie II a Introduction Cuda est un environnement logiciel qui permet d utiliser le GPU Graphics Processing Unit au travers de programme de haut niveau comme le C et le C Ainsi le programmeur crit un programme C avec des extensions CUDA de la m me mani re qu un programme OpenMP La seule obligation est d avoir une carte graphique Nvidia ayant une architecture Fermi ou Kepler Les fichiers doivent tre compil s avec le compilateur Nvidia NVCC D finitions MIMD Partitionnement global en t ches de calcul d pendantes ou non Gros Grain SIMD Partitionnement local on d coupe en sous domaines en blocs On a des op rations primitives identiques sur des donn es diff rentes Grain Fin Host ou CPU c est l ordinateur qui sert d interface avec l utilisateur et qui contr le le device utilis pour ex cuter les parties de calculs intensifs bas s sur un parall lisme de donn es Il peut R W dans Global memory constant memory et R dans text
52. c l r Cela permet pour des vitesses mod r es en dessous de Mach 1 5 environ d augmenter la pouss e par augmentation du d bit de gaz et de r duire consid rablement le niveau de bruit La proportion d air contournant le moteur est variable selon les moteurs Elle est d autant plus lev e que le moteur est destin voler des vitesses faibles La tuyere Nous pourrions passer beaucoup de temps parler de chaque composant d un turbor acteur Bien que tr s int ressant je ne parlerais que de la tuyere sur laquelle porte ce sujet Tuyeres de turbor acteurs source L avionnaire Le r le de la tuy re est d vacuer les gaz chauds sous pression sortant des turbines Elle va poursuivre la d tente des gaz sortant de la turbine et donc transformer l nergie potentielle en nergie cin tique Cette transformation procure une pouss e le reste de la pouss e provenant du moteur et de la prise d air L arri re corps est la partie externe de la tuy re Pour les avions subsoniques les tuy res sont convergentes les flux primaire et secondaire peuvent tre s par s confluents ou m lang s Pour les avions supersoniques les tuy res sont convergentes divergentes Les sections du col et de sortie sont r glables de mani re assurer un bon fonctionnement de la tuy re dans tout le domaine de vol subsonique supersonique avec et sans r chauffe image ci contre dessus L image ci contre p
53. chier mtl contient des textures non compatibles L tape de conversion est faite par le logiciel nconvert exe qui est un convertisseur d images en ligne de commande open source que j ai int gr dans mon script perl On fait appel cet ex cutable chaque fois que l on rencontre un fichier de texture dans un mauvais format Petit aspect technique Pour Optix un mat riau pr sent dans le fichier mtl est soit une couleur unie g rer par les coefficients Ka Kd Ks soit une texture 2D cr e partir d une image Lorsque le rayon est envoy sur une facette il va r cup rer l information de couleur correspondante en la calculant partir des coefficients Ka Kd et Ks Ces coefficients sont soit d finis dans le fichier mtl soit r cup r s sur les textures images ll y a trois types de textures les map Ka qui correspondent aux textures ambiantes et donc au Ka les map Kd qui correspondent aux textures diffuses et donc au Kd et les map Ks qui correspondent aux textures sp culaires et donc au Ks Dans le cas des textures la facette est associ e a une partie de l image Optix va calculer la couleur a afficher en r cup rant sur les images les informations RGB Pour r sumer si on a un mat riau avec des textures chaque facette va avoir des coefficients Ka Kd et Ks diff rents ces coefficients sont d finis partir des images alors que pour un mat riau avec des couleurs unies les Ka Ks et Kd sont fix s et vont tre les m
54. classiques de rendu c est pour cela que l on utilise le photon mapping ou la path tracing pour faire apparaitre ces effets Master Physique et Informatique Introduction aux notions essentielles EM Rapport de Stage 3 Les structures acc l ratrices Une structure acc l ratrice est en fait un type d arbre binaire qui permet dans le domaine du rendu graphique d acc l rer les calculs en recherchant au pr alable les intersections entre les rayons et les g om tries mais aussi en faisant du stockage comme dans le photon mapping avec la photon map Ces arbres fonctionnent en deux tapes leurs cr ations et leurs parcours Les donn es l int rieur de l arbre sont stock es sous la forme d une hi rarchie dont chaque l ment est appel n ud le n ud initial tant appel racine Chaque noeud peut avoir des fils et ainsi de suite Si un noeud n a pas de fils il devient une feville ll existe trois grandes familles de structures acc l ratrices les grilles r guli res les partitionnements de l espace adaptatif et les volumes englobants Nous porterons notre attention sur plusieurs structures appartenant aux deux derni res familles Le Kd Tree Le kd Tree k dimensional tree est un partitionnement spatial de l espace k dimensions permettant de structurer les donn es en fonction de leur r partition dans l espace Il est un cas particulier des Binary Space Partitionning BSP trees Les BSP trees subdivisent l espace k
55. compos de deux parties UnAPI application programming interface qui d finit la structure d un raytracer Unsyst me de programmation en CUDA C qui produit les nouveaux rayons les intersections avec les surfaces les r ponses ces intersections tout cela en parall le Master Physique et Informatique Introduction aux notions essentielles EE Rapport de Stage III Probl matiques et solutions 1 La situation actuelle Nous avons vu dans la partie pr c dente que le logiciel CRIRA a t d velopp dans les ann es 1970 Bien qu aillant eu de nombreuses am liorations et modifications l impl mentation native en C du lancer de rayons sans parall lisation montre ses limites A une poque o les mod les g om triques sont de plus en plus d taill s il est urgent de trouver une solution afin d acc l rer ce processus Plusieurs tudiants sont pass s avant moi Charles Thierry tudiant en stage a l Onera en 2010 a mis en place un raytracer sous Cuda sans structures acc l ratrices Bien que cette solution soit plus rapide qu un CPU classique le raytracer mettait plus de temps que le couple CPU Octree de Crira Il fallait donc absolument int grer une structure d arbre dans le raytracer Ce fut le r le de l tudiant de 2013 qui a fait une tude sur les diff rents types de structures et leurs performances respectives Mais de nos jours les technologies et techniques voluent tellement vite comme le montre le
56. condes Donc pour une sc ne de 1024 768 qui tourne 40 FPS on a donc 3 1024 768 40 94371840 rayons par secondes Cette performances est obtenue gr ce la puissance de la carte graphique et du langage OPTIX CUDA Autre point qui est int ressant de comprendre comment peut on naviguer dans La sc ne sans avoir une grosse chute des performances Tout simplement gr ce a ce que l on appelle dans Optix l accumulation de cam ra Cette technique va quand on navigue dans la sc ne cr er des cam ras chaque point que l on visite et va effectuer la transition de oU l on tait ou l on va tout en supprimant les cam ras obsol tes Pour optimiser les performances on utilise un rendu progressif l image se construit au fur et mesure du temps On utilise ce mode de rendu pour permettre l utilisateur de naviguer avec fluidit dans la sc ne sans que le logiciel et la carte graphique aient calculer l image compl te chaque fois Ces deux m thodes r unies ensemble vont donc fonctionner la mani re d un streaming vid o on charge ce que l on a besoin au fur et a mesure du temps et on supprime ce que l on a d ja lu C Les am liorations Maintenant que l on a une base solide et un logiciel qui fonctionne correctement j ai ajout des options suppl mentaires dans le raytracer Tout d abord la possibilit de modifier le temps de rendu du mode progressif l image se construit au fur et mesure du temps Par d f
57. des chemins pour chaque rayon de la sc ne et a chaque rebond le rayon va tre envoy dans une direction al atoire principe de base du path tracing pour ensuite r cup rer la couleur de l intersection avec une g om trie Avant d effectuer le rendu proprement parler la m thode MCMC a le grand avantage de calculer et trier les rayons qui contribuent le plus la g n ration de l image Lorsque le rendu commence le path tracing connait d ja les chemins des rayons les plus int ressants parcourir ce qui offre un rendu beaucoup plus rapide Master Physique et Informatique Les m thodes de rendu expliqu es par la physique ET Rapport de Stage 5 Comparatifs avantages d fauts et r les des diff rents modules Nous avons donc un logiciel comprenant trois modules diff rents de rendu un module de raytracing un de photon mapping un de path tracing Nous allons essayer de voir dans cette partie les avantages et d fauts de chacune de ces m thodes Mais aussi nous nous int resserons aux r les et dans quel cas les utiliser et enfin nous ferons un comparatif de rendu pour une m me sc ne a Avantages et d fauts Commen ons avec le raytracing qui est une technique de rendu 3d simpliste mais qui a l avantage d tre en temps r el et donc qui permet de faire des visualisations rapides de la sc ne et de l objet afin de pr parer au mieux le rendu dans un autre mode qui sera lui beaucoup plus chronophage Je vois donc not
58. dice du bloc dans la grille dim3 blockldx blockldx x blockldx y blockldx z 1 Indice du thread dans le bloc dim3 threadldx threadIdx x threadldx y threadldx z Taille du WARP en nombre de threads int warpSize Un warp en CUDA est donc un ensemble de 32 threads il s agit de la taille minimale des donn es trait es de facon SIMD par un multiprocesseur en CUDA Bloc 1D ThreadiD threadidx x x Bloc 2D ThreadlD threadidx x blockldx y blockDim x Bloc 3D Dx Dy Dz blockDim x blockDim y blockDim z ThreadlD threadldx x threadldx y Dx threadldx z Dx Dy EDEN ANNEXES Master Physique et Informatique Rapport de Stage Exemple kernel nBlocks nThreads gt gt gt int index x threadldx x blockldx x blockDim x int index y threadldx y blockldx y blockDim y Les threads peuvent R W dansregisters shared memory local memory global memory R dans constant memory texture memory Bien dimensionner ses blocks et sa grille Un point important pour obtenir de bonnes performances le dimensionnement des blocks et de la grille Nous l avons vu ci dessus un block s ex cute sur un unique multiprocesseur Donc si une carte graphique poss de n multiprocesseurs il faut bien s r que la grille contienne au moins n blocks pour que chaque multiprocesseur soit actif Nous savons aussi que les threads d un block sont ex cut s par warp c est a dire par paquet de 32 Il est donc
59. diff rents on doit calculer la temp rature du m lange des deux gaz Crira ne le fait pas afin d avoir des valeurs justes lors du calcul des valeurs de la tuyere Nous avons donc deux gaz parfaits qui vont tre m lang s Ces gaz tant consid r s comme parfaits La variation globale d nergie interne est nulle lorsque nous les m langeons On peut donc utiliser la formule suivante n1 Cv1 T T1 n2 Cv2 T T2 0 Ce qui nous permet de trouver la temp rature r sultante des gaz fluides n1 Cv1 T1 n2 Cv2 T2 n1 Cv1 n2 Cv2 Mais aussi la pression pV Vi V2 T Pm P TO VA V2 p y P1 q tk Nous pouvons donc maintenant que l on connait la temp rature r sultante des deux gaz et la pression utiliser les formules du pour calculer les valeurs de la pression temp rature et autres dans la tuy re c Temp rature de la tuy re Pour finir il faut connaitre la temp rature de la tuy re que le gaz va chauffer ou refroidir Toujours dans le m me esprit que pr c demment on reste dans l hypoth se que l on est en pr sence de gaz parfait On va rajouter une approximation en plus on a conservation de la chaleur on n a pas de perte la chaleur fournit par le gaz est enti rement r cup r par la tuyere dQ m cv dTd Avec O la chaleur m la masse cv la chaleur massique volume constant et dTd la diff rence de temp rature entre l entr e de la tuy re et la sortie pour le gaz fluide Comme ex
60. dimensions en coupant chaque volume englobant en deux sous volumes par un plan de l espace et en r it rant r cursivement sur ces deux nouveaux volumes ainsi obtenus Dans le cas du kd Tree ces plans s parateurs sont toujours choisis de telle facon que leur normale soit un des axes du syst me de coordonn es de l espace Cela permet de simplifier la construction mais aussi le parcours de l arbre Le r le du kd Tree est double il permet d une part d avoir une subdivision spatiale optimis e de l espace permettant d acc l rer le traitement des donn es et d autre part de stocker les donn es sous la forme d un arbre binaire FN A d E Exemple de d coupage de l espace avec un kd tree source google image L Octree L Octree est une structure de donn es hi rarchiques cas particulier du kd tree bas e sur une d composition r cursive d une r gion 3D Chaque noeud repr sente un cube de cette r gion et le noeud racine repr sente la r gion enti re Chacun des noeuds peut avoir 8 fils Imaginons une grosse boite qui englobe toutes nos faces cette boite se nomme une Bounding Box ou AABB Aligned Axis Bounding Box Dans cette AABB nous allons compter le nombre de faces si ce nombre est sup rieur une certaine valeur x alors on coupe notre boite en 8 et on recommence jusqu avoir moins de faces que x R sultat chaque noeud a soit 8 fils soit aucun une feuille Dans chacun de ces n uds nous a
61. du script Start pl choisissez l option 2 vous aurez alors les informations de votre syst me affich es et si votre machine est compatible ou non BEEN D veloppement et programmation Master Physique et Informatique Rapport de Stage 5 Test de performance ARTGpu Pour voir comment ce comporte le programme nous allons faire des tests de performances en raytracing avec les m mes param tres que les tests pr c dents aop aa m 4 et en photon mapping avec un objet de 9302 facettes Configuration Raytracing FPS Photon mapping FPS Intel Core i7 Nvidia Tesla C2070 95 50 10 78 Intel Xeon Nvidia Quadro 1800 3 65 7 5 6 Int gration avec Crira La plupart des fonctions n cessaires Crira ont t programm es Cependant pour avoir une bonne int gration il fallait que ARTGpu fournisse crive dans un fichier les parcours des rayons point de d part direction point d intersection Pour ce faire je devais donc modifier les fichiers cu Cuda et ajouter une fonction d criture Mais c est l que les probl mes arrivent Il n est pas possible de faire de l criture fichier en Cuda C est apr s plusieurs jours de recherche que des d veloppeurs de Nvidia m ont communiqu cette information via leur forum J ai alors essay d utiliser la fonction cudaMemcpy qui permet de rapatrier les donn es sur la m moire RAM de la machine et d utiliser une criture classique en C cependant les fichiers Cu qui sont des fic
62. e 5 Diagramme de Gantt buiddepyuozoy gy s npapy noi Po saaw se suep pap EE m Umm igal sajinod uangesi nn qa lt ppg uaisisauaa2 sp lune 3943 3431 1314914 UN p ped E nErsjEu un p su ngsI2 xnEls Eu Sap ja Du Salyo ssp suonsaac NEN NH F Y 231310 sep unnsaz EM oo 18 dEurjjusursuuaiinus sp UOoISacn snpual ap suoda sap unaiaz EN aap quel ds UAAP 512149140 FAQ 1214914 sap anpaang P Co abesopau apoa a sapuawwoo sydg adwes vogeedag D juauiauunamgaun UOS HIH UODESIIDD D anue unisianuna a qissod inaj 12 ppq 1a qo Salou saj ajipusirduia 2 El suonn os sap lou E sonas pos uongardxa ajdurexa sinjas xdg uongig dal ST edixsdo openeen OO 9 19 0909 us uongurugiBog uonguuriBiod Ej E uongiE dad 189EIMEI SqusJajIlp ap sjduiaexa p 34980534 anbijgunnjur us snbiqdgijb npuas y UISEIMEN HABg 28190 r 981 PA quapasaid saeg ap spoddE y Yana r 13u49dng kdo dd eaotdiaai eos unu uomisodsip E sno 537 14de16011918 c LIE Mum CLOE IEL Z LOZ Jae Z OZ SE Master Physique et Informatique ANNEXES onbisud aygpow nesanou donrumuribo NS zEB Ejaur IN3 Eya sp sBuEgga3 El anbiuguipounau ua zeB sap aBuejaur o IR snbisiud ajgpow nesanpu np ones DEE sejg n sap anbuugu pouuau L sinajaEsInqin 14de1601 q18 m juEjsIxa ap as eu joins neannau np aaE d ua asiu La apaanooag i
63. e diff rents moments de la vie du programme Chaque bloc de threads est ex cut sur un multiprocesseur flux streaming multiprocessor SM Le SM ex cute plusieurs blocs de threads la fois Des copies du kernel sont ex cut es sur le streaming processor SP ou thread processors qui ex cute un thread qui value la fonction Chaque thread est allou un SP EE E Block Stream Processor Hi rarchie du GPU source libpfb so 6 Optix Raytracing Engine Les GPU sont les outils les plus puissants lorsque l on veut mettre en place une solution avec un haut degr de parall lisme Et le raytracing en requiert un tr s grand Cependant ces algorithmes de raytracing sont tr s irr guliers ce qui est un probl me lorsque l on veut utiliser toute la puissance de calcul d un GPU OptiX est un cadre de tracage de rayons programmable permettant aux d veloppeurs de logiciels de construire rapidement des applications de tracage de rayons obtenant des r sultats extr mement rapides a travers les GPU NVIDIA avec programmation C conventionnelle Au lieu d un outil de rendu avec un aspect pr d fini ou d tre limit certaines structures de donn es ou a un langage limit au rendu le moteur OptiX est extr mement g n ral ce qui permet aux d veloppeurs d acc l rer toute t che souhait e de tra age de rayons et de l ex cuter sur une large palette de mat riel disponible le tout sans licence Optix est
64. e environnement map qui seront dans la demi sph re inf rieure de l espace voir sch ma explicatif ci contre Construction de la scene Une autre option est la possibilit de d finir des objets qui vont Rendu d un objet 3d avec sunsky plus mettre de la lumi re Dans le photon mapping et le raytracing des couleur unie en haut gauche et sunsky lumi res sont d finis par d fauts lors de la construction de la sc ne iS di Pour notre module de path tracing si on ajoute le mot clef emissive dans le fichier mat riaux mtl l objet associ ce mat riau devient source de lumi re et le ciel n est pas g n r Dans l image ci dessous on a d fini trois sph res comme source de lumi re une rouge une verte une bleue Elles apparaissent blanches car c est la couleur par d faut d une source Il faut bien faire la diff rence entre la couleur avec laquelle elle nous apparait coefficient Ka et Kd et la lumi re qu elle met coefficient emissive Trois sph res qui mettent de la lumi re bleu rouge et verte d finit par le coefficient emissive et qui apparaissent blanche d finit par les coefficients Ka et Kd o D veloppement et programmation Master Physique et Informatique 2012 Sur cette nouvelle image on remarque bien que notre module de path tracing g re aussi les effets caustiques cela vient du fait que l on utilise un path tracing bidirectionnel mais on y reviendra plus tard
65. e Stage Cr ations Structures acc l ratrices Lower is better 170 833583 5 a o Temps en seconde i S 6600060 103101 1198688 125656 172326 254658 623544 801942 Nombres de Facettes MSBVH BHiKdTree EILBVH LIBVH Temps de cr ations d une structure acc l ratrice en fonction du nombre de facettes de l objet charg pour de grandes g om tries Performances Structures acc l ratrices Higher is better 60 50 s 40 8 al A E E 20 10 Si 103101 119688 125656 172326 254658 623544 6801942 Nombres de Facettes MSBVYH BHKdTree EILBVH GEVH Performances de rendu pour chaque structure acc l ratrice en fonction du nombre de facettes de l objet charg pour de grandes g om tries Master Physique et Informatique D veloppement et programmation EE Rapport de Stage Petit aspect technique Quand on navigue dans la sc ne avec des options de type anti aliasing et rendu des mat riaux lues dans les fichiers mtl on remarque bien que les performances diminuent grandement Cela est d au fait que des milliers de rayons sont envoy s par seconde pour calculer la sc ne Pour chaque frame on a un rayon qui r cupere la couleur de l objet un rayon avec plusieurs rebonds qui va calculer les ombres un rayon avec plusieurs rebonds qui va calculer les r flexions On a donc 3 rayons multipli s par le nombre de pixels dans la fen tre multipli s par le nombre de frames par se
66. e ce stage f t plus tourn vers l informatique il m a confort dans le potentiel du Master Physique et Informatique qui m a rendu ind pendant en informatique tout en me permettant de comprendre la physique et avoir la r flexion et les m thodes n cessaires la compr hension des ph nom nes qui nous entourent J ai galement eu la chance d tre autonome dans mon travail de g rer le projet de suivre un planning de prendre les d cisions n cessaires et de proposer des solutions quand un probl me survient Mais ce stage m a aussi permis de travailler en relation avec des gens d couter leurs demandes et leurs besoins de trouver des possibilit s leurs probl mes et de rechercher des solutions en groupes Bien qu ind pendant le travail de LA groupe a t n cessaire et extr mement b n fique D un point de vue plus technique j ai pu m am liorer et d couvrir de nombreux langages de programmation perl c cuda optix html5 css3 me remettre a la thermodynamique et la physique de rendu Cette exp rience aussi bien humaine que professionnelle va me permettre de commencer ma vie future dans les meilleures conditions possibles oe Conclusion Master Physique et Informatique Rapport de Stage Master Physique et Informatique Conclusion EDU Rapport de Stage VIII Bibliographie Webographie Partie Pr sentation Qui sommes nous www onera fr Documents internes a l Onera intranet bibl
67. e module de rendu ARTRaytracing exe que je d veloppe et l utilisateur Maintenant que l on peut charger toutes les g om tries possibles seulement en fichier obj j ai cr le script perl nterface pl qui a donc pour mission de me demander le chemin du fichier g om trie Chargement d un objet diff rent dans le le type d arri re plan que l on veut color que l on appelle aussi miss raytracer ou environnement map le type de rendu que l on veut ambient occlusion phong fresnel reflexion normal shader et enfin si on veut relancer un calcul ou fermer l application on demande aussi au cas ou l on refait un calcul si on garde le m me fichier obj et le m me fichier pour l environnement map Ce script est une interface console qui permet d interagir avec l utilisateur du raytracer Toutes les informations saisies et choisies par l utilisateur sont transmises ARTRaytracing exe comme arguments et sont r cup rer dans l ex cutable gr ce argc et argv Maintenant que l interface et que la saisie des options sont en place il a donc fallut int grer dans le raytracer les options d arri re plan environnement map et color on choisit la couleur de fond L environnement map est une image hdr qui est plaqu e sur une sph re englobant la sc ne Le fonctionnement des environnements dans un raytracing mais aussi en photon mapping et path tracing est le suivant si le rayon envoy par le raytracer ne rencontre aucu
68. e pour les programmes CUDA car elle aborde les probl mes d accessibilit en lecture criture de la m moire et de vitesse d ex cution des programmes Les diff rents types de m moire pr sents sur une carte graphique sont les registres la m moire partag e la m moire locale la m moire constante la m moire texture et la m moire globale Elles se caract risent par leurs capacit s de stockage de vitesse et de facilit d acc s par le GPU et par leur accessibilit en lecture et ou criture par le CPU Fer thread local memory Allocution des diff rentes m moires source libpfb so La communication Host Device La m moire globale en bas du sch ma est le moyen de communiquer des donn es entre l h te et le device Le contenu de la m moire globale est visible depuis toutes les threads et est accessible en lecture criture celle indiqu e constant memory n est accessible qu en lecture seulement La m moire partag e par bloc est visible depuis tous les threads de ce bloc La m moire locale comme les registres n est visible que du thread Communication entre le CPU et le GPU source libpfb so NE Introduction aux notions essentielles Master Physique et Informatique Rapport de Stage Ex cution d une application en parallele sur le device Le kernel est ex cut sur une grille de blocs de threads voir image ci dessous Diff rents kernels peuvent tre ex cut s par le devic
69. e source lumineuse la loi de probabilit qui d finit la direction apr s les rebonds est d finie par une pdf probability density function La luminosit et couleur du tout premier point d impact sera donc une pond ration de la lumi re et la couleur de tous les rebonds qui ont eu lieu pour un rayon Elle fonctionne dans les grandes lignes comme un raytracing mais la diff rence se fait lors du rebond et de la r cup ration de l information de couleur cependant les formules sont les m mes Modification par la couleur obenu lors des rebonds suivants Pond ration premierpoint parlalumi re d impact Couleur du Couleur finale affich e en ce point Calcul de la couleur afficher Le Path Tracing bidirectionnel Le path tracing bidirectionnel est une variante qui en plus d envoyer des rayons depuis la cam ra en envoie galement depuis les sources lumineuses de la sc ne ce qui rejoint la m thode du photon mapping je ne reviendrai pas sur l aspect physique car il est expliqu ci dessus A chaque intersection d un rayon avec une surface on va disperser al atoirement les rayons vers les autres surfaces de la sc ne Ensuite on va connecter tous les types de rebonds avec les rayons d ombres afin de s assurer qu ils sont mutuellement visibles Le path tracing bidirectionnel est donc une m thode qui combine les avantages du pathtracing qui est une m thode pr cise et du photon mapping caustique e
70. ente plusieurs limites elle est la m me en tout point de l espace et est donc une grosse approximation de ce qu il se passe dans la r alit elle ne prend pas en compte non plus la phosphorescence la fluorescence les interf rences On a donc de nombreux aspects physiques qui ne sont donc pas pris en compte Pr cision sur les coefficients Ka Kd Ks En optique Le coefficient d absorption est d fini par le rapport entre l absorbance et la longueur du chemin optique parcouru par un rayonnement lectromagn tique dans un milieu donn exprim en m ou en cm Cependant en informatique et surtout en rendu d image de synth se le coefficient d absorption not Ka est une couleur d finit dans un fichier mat riau mtl et cod par trois valeurs qui correspondent au rouge vert bleu Il en est de m me pour le coefficient de diffusion Kd Il faut bien avoir cette diff rence en t te pour comprendre les prochaines parties qui vont parler de la physique derri re les diff rentes techniques de rendu raytracing path tracing EM Les m thodes de rendu expliqu es par la physique Master Physique et Informatique Rapport de Stage 2 La physique du raytracing article informatif issu d internet Source Wikip dia Un raytracer est un programme informatique mais de nombreuses notions physiques sont n cessaires pour bien comprendre son fonctionnement R flexion optique Lorsque la lumi re arrive sur une interface ent
71. es La gestion des mat riaux dans ARTGpu se fait de la mani re suivante avant l ex cution des modules de rendu le script nterface pl fait appel au script mat riaux pl C est ce script qui va g rer les fichiers mtl qui seront ensuite lus et charg s dans les modules Le script materiaux pl permet de cr er automatiquement des fichiers mtl partir d un fichier r f rence fourni par le logiciel Crira pour les fichiers obj n en ayant pas et de modifier les fichiers mtl existants pour les rendre compatibles Cette compatibilit passe par la conversion des textures livr es avec le mtl qui sont souvent en tga ou jpg alors que notre raytracer ne supporte que les ppm Voici donc tape par tape ce que fait le script de gestion des mat riaux Rapport de Stage Test d existance du Lecture du fichier de fichier mtl le fichier r f rence Retour au script n existe pas Data BRDF Interface pl Lecture du nombre Ecriture du fichier de mat riaux utilis s mtl dans le fichier obj G n ration du fichier mat riau partir du fichier de r f rence Data BRDF Modification du Test d existance Lecture du mtl pour prendre du fichier mtl le nombre de en compte les Retour au script fichier existe textures pr sentes nouvelles textures Interface pl Q Q Q Q Q Q Q Lecture du Conversion des Sauvegarde du nombre de textures si fichier mtl mat riaux incompatibles pr sents Modification du fichier mat riau dans le cas o le fi
72. et s pour la sortie au col Au col ona cs as y ps vs el VS ve E ps pe ps Y ps vs ps ve o pe ve e Eg ps Y cs y pe ve e Y En int grant la loi de l coulement v dp c dc Oil vient 2cs 2ce EE ps vs pe ve 0 s Y 1 cs ce y 1 ce 1 cs 1 Eu qoia Le p Y Weg ve 2 y pe ve 2 ce E s Y i y 1 Y 1 AX E acr f es ps YE e y ce pe y 1 y 1 ae S 2 1 Y E yg Maer On a donc les r sultats suivant avec lesquels on peut calculer toutes les caract ristiques du gaz fluide et de la tuy re avec s la sortie et e l entr e pour la tuy re D 1 EE om Pression E y Masi ZI VET Temp rature gaz fluide n dn 1 j i D LII Mae y 1 y 1 Volume Vitesse d coulement au col La section EN Modele thermique appliqu aux tuyeres dans Crira Master Physique et Informatique Rapport de Stage b Cas des turbor acteurs double flux Nous venons de voir comment calculer la pression temp rature du gaz fluide volume section vitesse d coulement pour une tuy re convergente Ces calculs peuvent tre utilis s dans n importe quel cas avec n importe quel turbor acteur car les calculs permettent de trouver les valeurs en sorties si on connait les valeurs d entr es Cependant si on utilise un turbor acteur double flux internes le m lange des gaz est fait avant la tuyere et non pas ject par deux endroits
73. eurs pour chaque pixel de l image Le CPU n a plus qu convertir ces tableaux de pixels en images texture 2d et les afficher Cette m thode permet donc de garder le cot extr mement parall le du programme et d utiliser au mieux la puissance du GPU Cependant l image affich e dans la fen tre n est pas en 3D lorsque nous avons l impression de naviguer dans une sc ne 3D nous ne faisons en r alit qu un d placement en x et en y qui est ensuite interpr t par Optix comme un d placement dans la sc ne Pour rem dier a cela il faut convertir l information d placement en x et le d placement en y en une information d angle et ensuite synchroniser le rep re avec ce d placement Vu que je n ai pas r ussi mettre en place cette synchronisation j ai cr un rep re dans un fichier obj et si l on choisit l option axe les modules raytracing et path tracing vont charger ce rep re et l afficher Cela reste du bricolage am liorer 4 Compatibilit Notre logiciel ARTGpu fonctionne avec les versions de CUDA sup rieur la 2 3 Les versions pr c dentes ne prennent pas en compte Optix De plus pour ex cuter correctement tous les modules il faut avoir une carte graphique de type Nvidia Fermi avec une puissance de calcul compute support sup rieure ou gale 2 0 Pour savoir si l ordinateur peut faire tourner correctement tous les modules un petit programme de compatibilit a t introduit dans ARTGpu Dans le menu principale
74. exions diffuses et effectue ses calculs d clairement avec des BRDF Cette suite logicielle est vocation interne et externe fournie la DGA et des industriels Le code Crira travaille sur sc ne fixe dans laquelle les objets ne se d placent pas Il se divise en quatre grandes parties ou passes gt Passe 1 Calcul des param tres g n raux en fonction de la sc ne que l on souhaite et calcul du es jet s gt Passe 2 Rendu g om trique de l avion gt Passe 3 Calcul radiatif de l a ronef en luminance avec prise en compte des BRDF gt Passe 4 G n ration d images en luminance la r solution de l entr e capteur oe Pr sentation Master Physique et Informatique Rapport de Stage Chaque passe est repr sent e par un ou plusieurs ex cutables L ensemble est assez h t rog ne du point de vue des codes sont utilis s du FORTRAN du C et du SCRIPT SHELL L objectif du stage est l optimisation du rendu g om trique c est la passe2 qui va nous int resser R flexions subies 1 L chelle de couleurs indique le nombre de r flexions sur la surface de l avion source Crira Dota 5 Le Projet Ce stage se d roule du 19 mars au 17 ao t 2012 pour l Universit Montpellier 2 et au sein de l unit DOTA du Centre de Salon de Provence de l Onera L objectif principal est l impl mentation d un algorithme de subdivision de l espace sous GPU au sein du code CRIRA dans le but de rendre l ex
75. ganismes francais de recherche Les comp tences de l Onera sont organis es en 17 d partements voir graphiques page suivante dont un laboratoire mixte Onera CNRS Ouatre branches scientifiques coordonnent les actions dans des domaines connexes L Onera est implant dans huit centres g ographiques employant environ 2 ooo personnes dont 1 500 ing nieurs et scientifiques incluant 230 doctorants et personnels techniques gt 3 centres situ s en Ile de France gt 2centres en Midi Pyr n es 3 autres centres Lille Salon de Provence Avrieux Le centre ONERA de Salon est h berg sur la base a rienne 701 qui abrite galement l cole de l Air L organisme est sous tutelle du Chef de Cabinet du minist re de la D fense et a comme clients et partenaires entre autres la Direction G n rale de l Armement DGA EADS Dassault Aviation et Safran Master Physique et Informatique Pr sentation o Rapport de Stage Materiaux et Structures Traitement de M caniques des fluides et Physique nerg tique l information A ro lasticit et dynamique des structures Mat riaux et structures composites Mat riaux et structures m talliques Laboratoire d tudes des microstructures A rodynamiques appliqu e A rodynamiques fondamentale et experimentale Energ tique Mod les pour l a rodynamique et l nerg tique Electromagn tisme et radar Environnement spatia
76. hiers Cuda ne sont que des interm diaires avec l utilisateur car le compilateur nvcc compile les cu en ptx langage assembleur Optix et Optix ne connait pas cette fonction cudaMemcpy A l heure actuelle il n est donc pas possible de faire de l criture fichier dans Optix Cuda et cette fonction si importante va certainement emp cher l int gration de ARTGpu dans Crira 7 Ouverture et volutions futures Comme nonc pr c demment l int gration est compromise Cela est d autant plus emb tant que je ne pouvais pr voir que cette fonction ne pourrait se programmer correctement Cependant il est tout fait possible de faire voluer ARTGpu Pour ma part je pense que le plus int ressant serait d int grer directement dans l outil un rendu des mod les en infrarouge et ainsi d avoir un outil de visualisation temps r el des r flexions infrarouges Surtout qu ajouter cette fonction dans ARTGpu est possible et que Optix le permet tr s certainement Master Physique et Informatique Les m thodes de rendu expliqu es par la physique EE Rapport de Stage V Les m thodes de rendu expliqu es par la physique 1 L quation de rendu article informatif issu d internet Source Wikip dia En infographie l quation de rendu est une quation int grale dans laquelle le rayonnement en un point est donn par la somme des rayonnements mis et r fl chi dans un espace g om trique Il a t introduit en par David Immel et James Ka
77. i vous avez choisi miss ARTGpu vous demandera la couleur format float RGB d arri re plan Si vous avez choisi le module photon mapping ARTGpu vous demandera les param tres de la lumi re utiliser Le premier cran pr sente les options propres a la fen tre windows qui vient de s ouvrir avec les interactions souris clavier possibles Lancement de RTGpu Mouse interaction left mouse Camera a middle mouse Camera Fan Truck right mouse Camera Dolly right mouse shift Camera FOU Keyboard interaction q Quit f Toggle full screen Start stop a benchmark Toggle frame rate display Save a frame to SauePicture ppn Toggle memory usage printing Print camera pose Frint Sun pose x A i y Y Aucun parametre de rendu entret Aucun parametre d environnement entret Le deuxi me cran est l pour informations en donnant le temps de chargement compilation cr ation de l arbre Time to load geometry H 66546 5 Time to compile kernel 6 696343 s Time to build A LUE En quittant la fen tre OpenGl ARTGpu se ferme et va automatiquement v rifier si vous avez effectu des sauvegardes d images et les convertir d placer si il en trouve Convertion des images onbe d images H Fermeture de ARTGpu Voulez vous relancer un calcul u ni y Si vous choisissez non ARTGpu reviendra au menu principal Int ressons nous maintenant au module information et compatibilit choix 3 dans le menu Environ
78. ia Cette r flexion sp culaire utilise la loi g om trique mis en place par Snell Descartes La d finition de la loi est la suivante gt le rayon incident et le rayon r fl chi sont dans le plan d incidence gt i r R fraction optique Lorsque la lumi re passe d un milieu transparent un autre elle est d vi e La lumi re est dite r fract e et la propri t qui caract rise les diff rents milieux transparents est la r fringence qui se traduit par une valeur num rique l indice de r fraction Comme on la vue chaque milieu transparent est caract ris par son indice de r fraction not n On appelle dioptre la surface s parant les deux milieux La loi de la r fraction de Snell et Descartes permet de rendre compte du ph nom ne La loi est la suivante les angles d incidence et de r fraction 0 et 0 mesur s par rapport a la normale sont tels que ny sin 0 ns5sin 05 Master Physique et Informatique Les m thodes de rendu expliqu es par la physique EPUM Rapport de Stage a Le modele de Phong Les modeles sont l pour faire le lien entre la physique et l informatique Chaque modele a des avantages et des inconv nients car ils font des approximations des r gles de la physique Nous allons nous int resser au mod le de Phong qui est celui mis en uvre dans notre logiciel ARTGpu Description du modele Le mod le de Phong est un mod le dans lequel le calcul se fait en chaque poi
79. ible Optix vite de faire appel des comportements classiques de raytracing pour faire appel la place a des m canismes en CUDA C pour par exemple la gestion des ombres recursive rays les mod les de cam ra Optix peut donc tre utilis pour faire du raytracing du path tracing de la d tection de collision du photon mapping Et il peut aussi communiquer avec OpenGL ou DirectX De plus dans cette librairie les structures acc l ratrices sont d j impl ment es et optimis es pour fonctionner sur GPU Voici les structures disponibles gt Sbvh de type BVH sp cialis dans la cr ation d une hi rarchie pour des scenes avec des g om tries statiques gt BVH c est l algorithme de base pour la cr ation d une hi rarchie de volume Il est performant pour la cr ation de hi rarchie de groupes d objets MedianBvh Toujours de type BVH il est utilis pour les sc nes dynamiques Lbvh Toujours de type BVH il est utilis pour les sc nes d animations TriangleKdTree De type KD Tree il est sp cialis dans les sc nes comportant des g om tries compos es de triangles Nous utiliserons par d faut la structure Sbvh qui est la plus rapide voir partie IV b Les performances et la mieux adapt e au rendu de g om tries que nous voulons faire JJ A Master Physique et Informatique D veloppement et programmation ETE Rapport de Stage IV D veloppement et programmation Comme nous l avons vu dans les pages pr
80. id al d avoir un nombre de threads par block qui soit un multiple de 32 pour viter de se retrouver avec des warps dont des threads ne font rien De plus il est important d avoir beaucoup de threads dans un block de mani re masquer les temps de latence des op rations m moires et calculs En effet lorsqu une op ration est effectu e par un thread son r sultat n est pas disponible imm diatement ll se passe de quelques dizaines a quelques centaines de cycles d horloge avant qu il soit disponible Pendant ce temps la si la suite de l ex cution du thread d pend de cette valeur le thread est bloqu C est pourquoi il faut que le multiprocesseur ait d autres threads disponibles ex cuter pendant ce temps de latence C est ce qu on appelle masquer la latence Pour autant il ne suffit pas de donner une grande taille un block pour avoir de bonnes performances et ce pour deux raisons gt Une carte de g n ration 1 3 ne peut avoir que 1024 threads r sident Si un block contient 768 threads alors il est impossible de charger un autre block et seuls 768 threads seront r sidents la oU avec un bloc de taille 512 il aurait t possible d en avoir 1024 gt Plus un block contient de threads plus il utilise de registres or cette quantit est limit e C Les fonctions variables et routines principales Les types de fonctions host fonction ex cut e sur le CPU par d faut global fonction ex cut e sur le GPU mai
81. interactions des photons avec l objet 3d Pas de temps r el Calcul un peut long sinejog EM Les m thodes de rendu expliqu es par la physique Master Physique et Informatique 2012 Dans ce comparatif je vais prendre trois sc nes et je vais effectuer un rendu de ces sc nes avec les trois modules afin que l on puisse voir les diff rences entre chacun d eux Le temps de rendu est fix 30 secondes et les conditions de rendu seront les m mes pour tous m me position des lumieres Cette sc ne contient un plan diffus et des anneaux sp culaires La lumiere soleil est au dessus de la sc ne pas compl tement au z nith ce qui permet de faire apparaitre les ombres et les caustiques Pour le raytracing on a des r flexions et des ombres qui apparaissent mais on reste dans des affichages des effets tres simples ll n y a aucune contribution de lumi re ou de r flexion entre objets Pour le photon mapping le rendu est tr s rapide et on remarque bien la qualit des caustiques et des reflexions Enfin pour le path tracing le temps de calcul n est pas assez long les effets de r flexions sont peine visibles De haut en bas rendu d une sc ne avec le raytracing photon mapping et path tracing Rendu de gauche droite raytracing photon mapping et path tracing Master Physique et Informatique Les m thodes de rendu expliqu es par la physique EEE Rapport de Stage Cette sc
82. iotheque Partie Il Introduction aux notions Introduction aux Octrees D veloppement d un raytracer www algr org docs Le photon mapping http www mti epita fr blogs 2012 05 01 le photon mapping CUDA OPTIX www nvidia com et tous ses sous domaines forums CUDA par l exemple Ce livre est une introduction la programmation parall le sous GPU crit par Jason Sanders et Edward Kandrot tous deux ing nieurs chez Nvidia pour les ditions Pearson Cours GPU Document interne l Onera il est une introduction la programmation sous CUDA Cours CUDA Introduction au calcul sous CUDA http libpfb so P F Bonnefoi Le kd Tree une m thode de subdivision spatiale Universit de Rennes 1 C dric Fleury Fast Minimum Storage Ray Triangle Intersection Universit de Virginie http www cs virginia edu gfx Tomas Moller et Ben Trumbore Manifold Exploration A Markov Chain Monte Carlo technique for rendering scenes Universit de Cornell Wenzel Jakob et Steve Marschner Stackless KD Tree Traversal for High Performance GPU Ray Tracing Eurographics 2007 Volume 26 Number 3 Stefan Popov Johannes Gunther Hans Peter Seidel Philipp Slusallek Real Time KD Tree Construction on Graphics Hardware www kunzhou net Kun Zhou Oiming Hou Rui Wang Baining Guo Understanding the Efficiency of Ray Traversal on GPUs http code google com p understanding the efficiency of ray traversal on gpus
83. ique et Informatique Rapport de Stage 2 La programmation avec Optix On a vu qu Optix est donc environnement d di au raytracing Il utilise ces propres fonctions pour les initialisations de rayons les intersections de rayons les ombres Afin de faciliter le d veloppement d application Optix met en avant ces possibilit s sous forme d appel de fonctions programm es ou modules en CUDA C Mais Optix dispose aussi de fonctions dynamiques et de variables qui lui sont propres Toutes ces solutions permettent la programmation d une application puissante mais en gardant un code source relativement simple et court Dans la suite de cette annexe je vais parler des m thodes de programmation sous Optix La jeunesse de cette technologie et le peu de ressources sont un probl me tres important lorsque l on veut apprendre se servir de cet environnement J expliquerai donc certaines notions importantes Mais tout d abord voici la liste des objets utilis s dans Optix par le Host Api pour contr ler le raytracer Car comme on l a vu il faut faire la diff rence entre le Host Api crit en C et le raytracer ex cut sur GPU par CUDA OPTIX SH Context An instance of a running OptiX engine gt Program A CUDA C function compiled to NVIDIA s PTX virtual assembly language gt Variable A name used to pass data from C to OptiX programs gt Buffer A multidimensional array that can be bound to a variable gt TextureSampler One o
84. jiya en 1986 Les diff rentes techniques de rendu r alistes en infographie tentent de r soudre cette quation LD La base physique de l quation de rendu est la loi de conservation de l nergie En supposant que L repr sente la radiance on a pour chaque position de l espace la lumi re sortante Lo qui est la somme de la lumi re mise Le et de la lumi re r fl chie La lumi re r fl chie est la somme de la lumi re entrante Li dans toutes les directions multipli e par la r flexion de surface et le cosinus de l angle d incidence Illustration de la demi sphere de l espace dans laquelle l quation s applique source image i wikipedia L quation de rendu a donc la forme suivante j LS A t 2 Le X w t f Go QJ ELil x w A t u old AE Avec gt est une longueur d onde particuli re de la lumi re gt test le temps gt Lo est la quantit totale de lumi re pour la longueur d onde dans la direction w au temps t partir d un point x gt Le est la lumi re misse gt frest la BRDF qui calcul la proportion de lumi re r fl chie venant de w et se dirigeant vers w en un point x au temps t pour une longueur d onde gt Liest la lumi re de longueur d onde provenant de la direction w un temps t CG W N est l att nuation de la lumi re selon l angle d incidence On int gre sur toute la demi sphere de l espace Cependant cette quation pr s
85. l Mesures physiques Optique th orique et appliqu e Commande des syst mes et dynamique du vol Conception et valuation des performances des syst mes Traitement de l information Prospective a rospatiale Simulation num rique des coulements et a roacoustique Organisation des 17 d partements de l Onera 3 Le DOTA Le DOTA est le D partement d Optique Th orique et Appliqu e Il fait partie de la branche Physique de l organisme et regroupe environ 150 chercheurs et ing nieurs ce qui en fait l un des plus important centre europ en de recherche en optronique de d fense Son principal objectif est l utilisation de l optique de l ultraviolet l infrarouge lointain et de l optronique dans les domaines de l a ronautique de l espace et des syst mes militaires des fins de simulations ou de d tection 4 Crira Le code Crira Calcul de Rayonnement Infrarouge des A ronefs a pour but principal d tablir la signature infrarouge SIR passive d un a ronef en vol en fonction de param tres d environnement globaux et propres l avion et des param tres du capteur employ pour la simulation cette partie est bien distincte du code et est en fait un traitement sur les images calcul es pr c demment Les premi res tudes ayant amen la cr ation de cet ensemble d outils datent du milieu des ann es 7o Actuellement ce logiciel utilise un raytracer CPU quip d un octree d un calcul de r fl
86. la couleur diffuse est d finie par Ka ka 1 000 1000 1 000 white La couleur sp culaire est d finie par Ks et on utilise le coefficient sp culaire Ns Ks 0 000 0 000 0 000 black off Ns 10 000 ranges between 0 and 1000 De nombreux mod les d illuminations sont possibles pour les mat riaux Color on and Ambient off Color on and Ambient on Highlight on Reflection on and Ray trace on Lo NO ka b Les fichiers BDD article technique de l Onera C est un format de type texte pilot par des mots cl s ou balises La port e d une balise est limit e par l entr e d une autre balise En g n ral la fin des donn es li es une balise est s par e de la balise suivante par une ligne blanche mais ce n est pas obligatoire Lorsqu une ligne comporte plusieurs donn es celles ci sont s par es par au moins un espace blanc et ou une tabulation Ce format est multi objet Chaque objet poss de au moins un tableau de points et un tableau de facettes Il peut avoir en option un tableau de normales aux facettes un tableau de normales aux sommets un tableau de num ros de groupes un tableau de num ros de mat riaux et ventuellement une matrice de transformation associ e a un objet Cette matrice sert modifier l chelle de l objet le d placer ou en effectuer une rotation Le mot cl lt OBJET gt est suivi sur la m me ligne d un num ro d objet et d un nom d objet Chaque apparition d une balise OBJET
87. la mani re suivante o object name g group name usemtl material name Construction d un fichier OBJ La premi re ligne est un commentaire this is a comment Ensuite on a un enchainement de vertex vertex normal faces et cela une ou plusieurs fois List of Vertices with x y z w coordinates w is optional and defaults to 1 0 VOS 0224 Usoto La Desa Texture coordinates in u v w coordinates v and w are optional and default to O0 vt 0 500 1 552 10 23 Lis t Normals in x y z form normals might not be unit vn 0 707 04000 0 TOT ass Face Definitions E 3X 2 2 f 3 1 472 5 3 E 60 471 37579 77579 5 e ANNEXES Master Physique et Informatique Rapport de Stage Les fichiers mtl Le format MTL Material Template Library ou Material Library file est un standard d finit par Wavefront Technologies en compl ment du format OBJ Le fichier mtl est un fichier au format ASCII texte qui contient la d finition d un ou de plusieurs mat riaux d un objet 3D Chacune de ses d finitions incluent la coloration la texture et les param tres de r flexion optique de chacun de ces mat riaux On peut d finir plusieurs mat riaux dans un fichier mt chaque mat riau est pr c d de la commande newmt 1 define a material named Colored newmtl Colored La couleur ambiante est d finie par Ka La couleur est d finie en RGB avec des valeurs allant de o 1 Fa L 000 1 000 E EE white De la m me facon
88. les coordon es de l observateur de la sc ne Pr parer le sc nario du rendu g ometrique e Calcul de la boite englobante e Calcul du rendu par une m thode d illumination globale m thode Monte Carlo ou technique du Z Buffer e Calcul des surfaces apparentes e Sauvegarder les images brutes e Sauvegarde des chemins des rayons de reflexions Sauvegarde Une fois notre logiciel de d monstration ARTGpu fini il faudra que les fonctions int gr es dans le logiciel Crira respectent le cahier des charges suivant Pr paration du calcul Lecture d un fichier de g ometries d avion et des jets eConvertir et assembler l avion et le jet e ecture des coordonn es de l observateur eR cup rer les param tres pour le calcul e ecture des diff rents mat riaux MES D veloppement et programmation Master Physique et Informatique Rapport de Stage Calcul et affichage eFaire le rendu des g ometries avec mise en place d une structure acc l ratrice en compl ment de la m thode de rendu ePermettre le choix entre plusieurs mod les de rendu phong fresnel eProposer de nombreuses options anti aliasing type de camera ePermettre l int gration futures d autres m thodes de rendu Fichier de sortie eR cup rer les informations sur la AABB eSauvegarder les fichiers de rendu eSauvegarder les chemins des rayons eSauvegarder les param tres des g ometries Lr c
89. lit s qu offre Optix Avec cet outil j ai essay d int grer le plus grand nombre de m thodes de rendu d options de rendu et de fonctions qui pourraient dans le futur int resser pour le logiciel Crira Il permet aussi de faire de nombreux tests sur les diff rents types de rendu afin de choisir au mieux les technologies et techniques utiliser Cependant l int gration directe de cet outil dans Crira est compromise cause de l impossibilit du langage assembleur ptx utilis par Optix crire dans un fichier les r sultats n cessaires au bon fonctionnement de Crira Il faut donc trouver une solution a ce probl me ou alors int grer directement un module de rendu en infrarouge dans ARTGpu J ai aussi pu m int resser aux tuy res et aux turbor acteurs en commen ant programmer un petit modele physique qui va calculer les temp ratures des tuy res durant le fonctionnement d un appareil d une facon un peu plus pr cise que ce qui est fait l heure actuelle Durant ces quelques mois j ai eu la chance satisfaction de travailler dans des domaines qui me passionnent comme le rendu d image par ordinateur la programmation et l a ronautique Mais je n ai pas fait que programmer je me suis int ress aussi l aspect physique qui se cache derri re et c est en cela que ce fut r ellement int ressant Il a fallu comprendre comment ces ph nom nes fonctionnent pour pouvoir les d velopper correctement et les faire fonctionner Bien qu
90. lle n est pas limit e dans la quantit de rebonds et r alise un Trac d un rayon en path tracing modele de la lumi re ambiante int gral source http graphics ucsd edu Parmi les diff rentes techniques disponibles ARTGpu int gre la m thode du Path Tracing bidirectionnelle int gration de l illumination dans le path tracing qui sera expliqu e dans la partie V Le Photon Mapping Le photon mapping est un algorithme en deux passes d velopp par Henrik Jensen comme une alternative au raytracing Il s pare les informations d illuminations et les objets 3d et la solution est stock e dans une structure de donn e spatiale comme les kd tree que l on appel photon map Le photon mapping permet aussi d afficher des effets tels les Caustiques L image ci contre montre une boite de Cornell rendu avec la technique du photon mapping Les Caustiques Une caustique d signe en optique et en math matiques l enveloppe des rayons lumineux subissant une r flexion ou une r fraction sur une surface ou une courbe Plus sp cifiquement on parle de caustique au flambeau lorsque les rayons lumineux sont issus d un point distance finie et de caustique au soleil si la source lumineuse se trouve a une distance infinie Une caustique par r flexion est aussi appel e catacaustique tandis qu une caustique par r fraction est appel e diacaustique Ces ph nom nes sont tres difficiles voire impossibles mod liser par les m thodes
91. ls sont travers s par le rayon et dans quel ordre gt sitsplit gt tmax alors le rayon traverse seulement le fils near gt sitsplit tmin alors le rayon traverse seulement le fils far tL gt sitmin tsplit tmax alors le rayon traverse en premier le fils near puis le fils far Loch max Enfin la meilleure impl mentation utilise une pile max pour stocker le fils far dans le cas o les deux fils bn doivent tre visit s afin d viter la r cursivit i D monstration du choix du fils traverser dans une structure acc l ratrice source Cedric Fleury NE Introduction aux notions essentielles Master Physique et Informatique Rapport de Stage 5 La programmation sous GPU Cuda CUDA est un environnement logiciel qui permet d utiliser le GPU au travers de programme de haut niveau comme le C ou le C Le programmeur crit un programme en C avec des extensions CUDA de la m me mani re qu un programme en OpenMP par exemple CUDA n cessite une carte graphique quip e d un processeur Nvidia Pour notre logiciel ARTGpu il est recommand que la carte soit de type Fermi ou Kepler car les calculs pour le path tracing n c ssitent des variables double pr cisions Les fichiers sources doivent tre compil s avec le compilateur nvcc fourni avec la suite CUDA Compilation Programmation v Fichier ER en CUDAC N Compilation Y Fichier cu Linking Visual e Executable
92. matique Pr sentation EPUM Rapport de Stage II Introduction aux notions essentielles 1 Raytracing Le lancer de rayon est une technique de synth se d image qui consiste effectuer le cheminement inverse de la lumi re partir de l observateur vers la sc ne 3D afin de d terminer la couleur de chacun des points de l image synth tiser Pour lancer des rayons dans la sc ne 3D on place devant l observateur une image virtuelle qui sera celle que l on va synth tiser Puis on lance des rayons partant de l observateur et passant par chacun des pixels de l image virtuelle afin de d terminer leur correspondance dans la sc ne 3D Une fois le premier point d intersection du rayon avec la sc ne trouv on calcule la couleur de ce point afin de d terminer la couleur du pixel de l image virtuelle correspondante Pour cela on va relancer diff rents rayons dans la sc ne afin de d terminer quelles sources de lumi re clairent le point quels autres objets de la sc ne se r fl chissent ou se r fractent en ce point Pour les nouveaux points d intersection avec d autres objets de la sc ne ainsi trouv s on peut r it rer le m me processus plusieurs fois selon la qualit du rendu souhait e a Light Source f rer Shadow Ray Image Camera Exemple de trac de rayons dans une sc ne source raphael brugier fr Principe d taill On trace un rayon primaire passan
93. ment Optix d coupe l objet en plusieurs g om tries instances comprises dans la g om trie groupe Nous devons donc cr er une g om trie groupe principale dans laquelle on integre la g om trie groupe et donc toutes les g om tries instances de chaque fichier obj Voir l annexe sur optix pour bien comprendre la notion de g om trie groupe La seconde option est l ajout d un rep re dans la fen tre Opengl afin de mieux se rep rer dans l espace Pour l int grer je cr e des lignes Opengl avec une couleur diff rente chacune auxquelles je donne des positions fixes Ensuite j affiche ce rep re dans la fen tre Opengl l affichage se fait dans la fonction display de la fen tre Alors que cette technique est la bonne le rep re ne s affiche pas et fausse le rendu de la g om trie le rendu devient compl tement bleu Apr s des heures de recherche avec une stagiaire tudiante en Master d Informatique sp cialit image nous remarquons que le fonctionnement d Optix provoque ces disfonctionnement Voici comment fonctionne mon programme P Flux Conversion des Affichage de la d eu Calcul du rendu d information informations 3D texture 2D dans une g om trie z GPU sur le rendu en texture 2D la fen tre CPU 3D GPU peng Pour garder une puissance de calcul et viter d tre brid par le CPU le GPU effectue tous les calculs et stocke ensuite les informations de coul
94. ment et programmation Master Physique et Informatique Rapport de Stage On remarque assez facilement la qualit de la r flexion pour le module photon mapping avec m me l apparition d une caustique sur le disque de frein On voit bien que les photons rebondissent et clairent un autre objet Alors que pour le raytracing classique on a une r flexion basique uniquement sp culaire et les objets proches qui ne sont pas situ s dans un angle de sp cularit n apportent aucune contribution On apercoit m me des aberrations en vert dues aux manques d informations de couleurs cet endroit de l objet Petit aspect technique Les photons sont issus d une source lumineuse mais avant d tre issus de cette source ils sont g n r s par une grille de photons Cette grille est d finie au d but du programme et ne peut tre modifi e par une option Si l on veut modifier sa taille on doit ensuite recompiler le projet ll en est de m me pour le nombre de photons Donc pour une grille par d faut de 256 par 256 et pour un nombre de photons de 10 il va y avoir 10 256 256 photons envoy s par image soit pour une sc ne tournant 30 FPS 19 660 800 photons par secondes En effet chaque pixel de la grille g n re le nombre de photons d finis par d faut 10 dans notre cas Apr s avoir t g n r s les photons passent travers la source lumineuse on a d fini sa taille gr ce a l option Light Radius pour enfin atteindre l
95. ne facette de la g om trie ou si il est r fl chie dans le vide alors ce rayon r cupere l information de couleur de l image correspondante ou la couleur choisie selon l option choisie par l utilisateur C est ce que l on appelle une fonction miss Rendu d un objet 3d avec gauche l option color miss et droite l option environnement map Il tait aussi n cessaire d ajouter des m thodes de rendu type phong ambient occlusion Fresnel r flexion normal shader Chacun de ces mod les de rendu ont leurs sp cificit s Par exemple le modele de phong et un mod le g n rique qui va permettre de prendre en compte les ombres et les r flexions le mod le de Fresnel est un mod le de phong qui va rendre les r flexions beaucoup plus r alistes car diff rentes selon l angle de vue des exemples sont visibles dans la partie V Mais pour am liorer encore le rendu il a fallu impl menter une m thode de type antialiasing Une image num rique est compos e de pixels et selon le type d objet que l on a on peut remarquer que les bords des formes ayant un angle particulier prennent la forme d escalier c est le cr nelage ou aliasing Pour supprimer cet effet visuel disgracieux on utilise l anticr nelage ou anti aliasing ll y a de nombreux types d algorithmes diff rents Certains vont calculer des d grad s de couleurs autour de la r gion souhait e pour adoucir le rendu d autre vont recalculer l image en plus grande et ensuite la r
96. nement et Cpu Poste de travail DOTA UINCI Systeme d exploitation Microsoft Windows Y Professionnel Type du systeme xbd hased PC Nombres Praocesseurts 1 D tails Intel 4 Family 6 Model 26 Stepping 5 Genuinelntel 3193 MHz Memoire R M totale 16 374 Mo Memoire RAM disponible 13 755 Mo Compatibilite Votre Ordinateur est compatible avec fiRTGpu Rapport de Stage d Historique des versions Version de base nettoy e et viable pour le projet du module de raytracing Gestion et chargement de n importe quel fichier obj Cr ation de l interface perl Ajout de fonctionnalit s sur le background les m thodes de rendues les am liorations Ajout de fonctionnalit s dans les scripts et ajout de types de rendus Ajout d options pour le temps de rendu gestion des mtl modification temps r el de la sc ne Ajout du module de photon mapping et de toutes ces options Ajout du module de path tracing et de toutes ces options Ajout de la gestion des jets conversion et cr ation de fichiers obj et gestion des options des jets gestion des axes et chargement obj multiples Ajout du trie des resultats et de la conversion des images dans le bon format Ajout d un module de compatibilit et informations syst mes finalisation et debbugage ANNEXES Master Physique et Informatique U 00 D un U D Y C O Q a t
97. nt Il permet de calculer de mani re pr cise la lumi re r fl chie par le point tudi pour cela il combine trois l ments la lumi re ambiante la lumi re diffuse et la lumi re sp culaire L objectif est de r cup rer l intensit lumineuse du point tudi Pour cela la lumi re est s par e en trois composantes gt La composante ambiante repr sente les parasites provenant d autre chose que la source consid r e la lumi re r fl chie par d autres points par exemple La lumi re ambiante est suppos e gale en tout point de l espace gt La composante diffuse indique l intensit du rayon r fl chi qui repart en tenant compte de l inclinaison avec laquelle la lumi re incidente arrive sur la surface mais en supposant que l intensit est la m me quelle que soit la direction que prend le rayon r fl chi La composante sp culaire tient compte du fait qu il y a plus de lumi re renvoy e dans la direction de la r flexion g om trique celle dans laquelle repartirait le rayon en arrivant sur un miroir Ambient Diffuse Specular Phong Reflection Composantes constituant un mat riau dans le modele de phong source image wikipedia D finitions des parametres et des constantes Dans le mod le de Phong chaque mat riau a des constantes qui lui sont propres et qui correspondent au trois composantes de la lumi re gt ka 0 1 constante li e la composante ambiante la proportion de lumi re ren
98. ons les ombres les diffusions Voici comment elles sont calcul es rtTrace Lancer de rayons Couleur de Prise en Modification de la couleur si lumi res pr sentes j U U i Prise en comptedes ombres reflexions Modification de la couleur si ombres pr sentes _ Toutes ces valeurs modul es par leur coefficient alpha transparence pour donner la couleur finale Modification de la couleur si r flexions pr sentes R cup ration de la couleur QU Calculs des couleurs dans Optix Master Physique et Informatique ANNEXES EN Rapport de Stage 3 Les diff rents types de fichiers a Les fichiers OBJ article issu de wikip dia OBJ ou obj est un format de fichier qui d finit des g om tries 3D ll a t invent par Wavefront Technologies pour son logiciel Advanced Visualizer Ce type de fichier est ouvert et a donc t repris par de nombreux logiciels de mod lisation 3D C est devenu un format de fichier universel Le format OBJ est un simple format de donn es qui repr sente une g om trie 3D seule en donnant la position de chaque vertex la position de chaque texture et les faces qui font que chaque polygone est d fini comme une liste de vertex textures Les vertex sont stock s dans un ordre antihoraire par d faut Les vertex un index valide de vertex commence un et concorde avec le dernier l ment de la liste p
99. orm e en nergie cin tique en sortie ce qui engendrera une forte pouss e voir sch ma ci dessous ADMISSION COMPRESSION COMBUSTION CHAPPEMENT Entr e d air Chambres de combustion Turbine L L J Section froide Section chaude Sch ma du fonctionnement d un turbor acteur e Modele thermique appliqu aux tuyeres dans Crira Master Physique et Informatique Rapport de Stage Le turbor acteur r alise ainsi un cycle continu quatre temps admission compression combustion et d tente chappement th oriquement d crit par le cycle de Brayton Explication sur le cycle de Brayton ou cycle de Joule issue d un livre de thermodynamique Le cycle de Joule se compose des m mes transformations que le cycle de Rankine 2 changes de chaleur isobares et deux variations de pression isentropiques la seule diff rence tant que le fluide actif reste toujours l tat gazeux C est le cycle id al de la turbine gaz Le cycle du turbor acteur est galement une variante du cycle de Joule dans laquelle on effectue une d tente partielle dans la turbine de mani re ce que la puissance fournie par la turbine soit juste suffisante entrainer le compresseur Les gaz la sortie de la turbine sont alors d tendus dans une tuy re pour tre acc l r s et ainsi produire une pouss e T Cycle de Brayton pour un turbor acteur source cours thermodynamique Quantit s de chaleur et tr
100. ormances de chaque structure chaque sc ne est rendue avec les param tres suivants gt m thode de rendu ambient occlusion and phong gt options antialiasing et 4 multiply ao on passe 4 fois pour ambient occlusion Les objets dans les tests suivants sont tous des v hicules ou avions certes tr s diff rents les uns des autres pour avoir un test int ressant mais on garde quand m me l esprit que les fonctions programm es sont destin es Crira qui effectue dans la plus part du temps des rendus d a ronefs Rapport de Stage 15 14 13 12 11 10 Temps ensecondes Cr ations Structures acc l ratrices Lower is better Ml 409385 5280 8611 6667 10721 11582 Mombres de Facettes EA 74315 E 45599 62954 33614 4371 23430 WSBVH MkdTree EILBVH OBVH Temps de cr ations d une structure acc l ratrice en fonction du nombre de facettes de l objet charg pour de petites g om tries Frames par secondes B E E e 5 8 3 8 Performances Structures acc l ratrices Higher is better 5280 6611 6867 23430 33614 45899 11582 Nombres de Facettes 4371 4938 10721 52934 74315 MSBVH BHKdTree BLBVH ELIBVH Performances de rendu pour chaque structure acc l ratrice en fonction du nombre de facettes de l objet charg pour de petites g om tries EE D veloppement et programmation Master Physique et Informatique Rapport d
101. outil Crira La partie Il introduit les notions les plus importantes a la compr hension de mon travail Elle est r dig e par mes soins mais elle s appuie sur de nombreux ouvrages et documents La partie Ill pr sente la probl matique et le travail de recherche d une solution technique Elle est issue en grande partie de mes recherches et du travail des tudiants pr c dents La partie IV contient une description d taill e de l outil graphique que j ai d velopp dans le cadre du stage avec les tapes de d finitions de programmations les tests et le fonctionnement du logiciel mis en place Une tude comparative de divers algorithmes de partitionnement de l espace a t r alis e pour des g om tries repr sentatives de celles utilis es dans Crira La m thode la plus adapt e notre probl matique est propos e en fonction du crit re du nombre de facettes C est le coeur du rapport La partie V complete la partie IV Elle contient un descriptif des principaux avantages et inconv nients des m thodes impl ment es dans ARTGpu Le principe de chaque m thode est tout d abord d crit avant une pr sentation comparative des m thodes obtenue suite un ensemble de tests r alis s avec cet outil La partie VI contient un projet secondaire sur le modele thermique de l outil Crira Dans les ANNEXES la partie sur l infrarouge a t prise et modifi e d un ancien rapport de stage Les fiches sur CUDA OPTIX et ARTGpu ont t
102. pliqu tout l heure on dit que l on a conservation de la chaleur donc do lt da Dans un m tal les atomes sont dispos s selon un r seau cristallin trois dimensions Chaque atome du r seau peut vibrer selon trois directions perpendiculaires entre elles qui ont chacune deux degr s de libert En admettant que le m tal ne travaille pas dilatation n gligeable toute quantit de chaleur dO chang e avec le milieu ambiant sert modifier l nergie interne du m tal de la quantit dU et ainsi varier sa temp rature de dT M masse atomique du m tal kg kmol 1 m dQ dU 3 y R dT La chaleur massique d une substance not e c en J kg 1 K 1 exprimant l nergie n cessaire pour faire varier de 1 C ou 1K la temp rature d une masse de 1 kg de cette substance on crit 3R dQ c m dT avec c M Loi de Dulong Petit On a donc pour la formule pour conna tre l l vation de la temp rature de la tuyere dQ dQ M 8 dU M C m 3 m R 3m R Master Physique et Informatique Modele thermique appliqu aux tuy res dans Crira BEN dT dT Rapport de Stage d Programmation du modele J ai donc d velopp un petit programme en C qui va permettre de calculer la temp rature de la tuy re partir des param tres d environnement pression atmosph rique temp rature de l air masse volumique de l air valeur Mach mais aussi gr ce aux valeurs en sortie de turbine des turbor acteurs temp ratu
103. r c dente Chaque face peut contenir plus de trois vertex p vi v2 v3 va Les normales donne la normale la facette en x y z vn 0707 04000 0 707 Les coordonn es vertex texture on peut d finir gr ce aux coordonn es de texture la texture d une face Un index de coordonn es de textures valide part de 1 et concorde avec le dernier l ment de la liste pr c dente Chaque face peut contenir plus de trois l ments VE wvlvetl v2 wbLt2 VIVES D finition des faces Les faces sont d finies en utilisant la liste des vertex textures normal Les polygones comme les quadrilat res peuvent utiliser plus de trois vertex textures normal pL d ox S Les coordonn es vertex texture normal on peut d finir gr ce aux coordonn es des normales le vecteur normal lorsque l on cr e une face Un index de coordonn es de normales valide part de 1 et concorde avec le dernier l ment de la liste pr c dente Chaque face peut contenir plus de trois l ments E wvl wbl vnl 2 wvt27wnz 3 wb3s7wnma Les coordonn es vertex normal comme pr c demment mais sans les textures E VL val 12 1002 w3lrwnms Les mat riaux et autres options Les mat riaux qui decrivent l aspect des polygones sont sauvegard s dans un fichier externe mtl Ce fichier contient un ou plusieurs mat riaux Voici comme il est annonc dans le fichier OBJ mtllib external mtl file name Les mat riaux groupes de polygones ou objets sont sp cifi s de
104. r sente une tuy re de turbor acteur d un avion subsonique double flux s par s En bleu la tuyere du flux secondaire et en rouge la tuyere du flux primaire o Modele thermique appliqu aux tuy res dans Crira Master Physique et Informatique Rapport de Stage 3 Etude thermodynamique de la tuy re Dans cette partie je vais pr senter les diff rents ph nom nes qui se produisent dans une tuy re Nous faisons bien s r l approximation que les gaz sont parfaits et que l avion reste une altitude constante pendant le calcul Dans un premier temps je calculerai les caract ristiques du gaz et de la tuyere temp rature pression col Dans un second temps je montrerai les formules pour le m lange des gaz cas des turbor acteurs doubles flux internes Et enfin je mettrai en place le calcul des temp ratures du mat riau composant la tuyere A Tuy re C ne interne V a Calcul des principaux param tres d une tuy re convergente Vitesse de son dans l air On montre en m canique que le son est une onde de pression dont la vitesse de D 1 D D D D D D D D propagation est a Jo ES la masse volumique et xs le coefficient de compressibilit adiabatique 1 dv 1 dv e gt Cs Xt Gt v est le volume massique Gr ce la relation de Reech entre la pente de l adiabatique p v cte et la pente de l isotherme p v cte dv 1 dv y s d ou yt y xs ce quidonnea
105. r more buffers bound with an interpolation mechanism gt Geometry One or more primitives that a ray can be intersected with suchas triangles or other user defined types gt Material A set of programs executed when a ray intersects with the closest primitive or potentially closest primitive gt Geometrylnstance A binding between Geometry and Material objects gt Group A set of objects arranged in a hierarchy gt GeometryGroup A set of Geometrylnstance objects gt Transform A hierarchy node that geometrically transforms rays so as to transform the geometric objects gt Selector A programmable hierarchy node that selects which children to traverse gt Acceleration An acceleration structure object that can be bound to a hierarchy node Le Raytracer pipeline mis en place par Optix contient plusieurs composants programmables utilis s et ex cut s par le GPU des points sp cifiques durant l ex cution d un raytracer gt Ray Generation The entry point into the ray tracing pipeline invoked by the system in parallel for each pixel sample or other user defined work assignment gt Exception Exception handler invoked for conditions such as stack overflow and other errors gt Closest Hit Called when a traced ray finds the closest intersection point such as for material shading gt Any Hit Called when a traced ray finds a new potentially closest intersection point such as for shadow computation gt Intersection
106. re pression et vitesse du fluide Ce petit programme est compos de deux fichiers cpp l un contenant les fonctions de calculs l autre contenant le main et un fichier h contenant les includes et les prototypes de fonctions Il fonctionne de la mani re suivante on entre en premier les param tres d environnement pression et temp rature puis les param tres de la tuy re diam tre d entr diam tre de sortie longueur et enfin les param tres en sortie de turbine temp rature pression et vitesse du fluide Ensuite le programme va calculer la masse volumique de l air la vitesse du son etla valeur du nombre Mach Une fois ces valeurs connues on calcul la valeur de la pression de sortie afin de pouvoir par la suite calculer la temp rature de sortie de tuyere et ainsi connaitre la diff rence de temp rature du fluide entre l entr e de la tuy re et la sortie Cette diff rence de temp rature va permettre de connaitre la quantit de chaleur fournie a la tuyere elle m me Il faut bien s r au pr alable calculer la masse volumique d air dans la tuy re le volume de la tuy re et la masse d air dans ce volume On peut enfin calculer la temp rature de la tuyere Il est aussi impl menter une partie de code pour le refroidissement de la tuyere par l air ext rieur Probl me A l heure o j cris ce paragraphe du rapport le logiciel ne fournit pas les valeurs finales coh rentes pour la temp rature de la tuy re Je suis s r que ju
107. re deux milieux elle peut tre soit r fl chie r fract e ou absorb e Quand on parle de r flexion il s agit de l ensemble des rayons qui mergent de l interface du c t d origine des rayons La r flexion de la lumi re peut tre sp culaire ou bien diffuse suivant la nature de l interface La r flexion sp culaire est la plus simple mettre en oeuvre car elle fait appel des notions g om triques simples contrairement a la r flexion diffuse qui n cessite des mod lisations plus complexes Le faisceau incident arrive sur une surface irr guli re image ci contre comme toutes les surfaces planes qui n ont pas t polies comme une vitre ou un miroir La lumi re est alors r fl chie dans un grand nombre de directions C est ce qu on appelle une r flexion diffuse Le faisceau de lumi re arrive sur une surface r guli re image ci dessous Les rayons sont r fl chis tous de la m me fa on sur la surface plane C est ce que l on appelle la r flexion sp culaire Id alement l nergie du rayon incident se retrouve totalement dans le rayon r fl chi en pratique une partie de l nergie peut tre R flexion diffuse de la lumi re source image wikipedia absorb e ou diffus e au niveau de l interface Normale au point Rayon merdent d incidence Rayon r fl chi R flexion sp culaire de la lumi re source image wikipedia Loi de Snell Descartes source image wikiped
108. re raytracer plus comme un outil de visualisation et de pr paration pour les autres modules qui fourniront une image beaucoup plus r aliste Avantages Gestion des photons Utilisation d un raytracing dans la premi re phase Avantages Comportements des photons Module en plusieurs etapes Pour finir nous parlerons du path tracing qui est pour moi le module de rendu le plus pr cis et complet On obtient gr ce lui les meilleurs rendus d objets malgr un temps de rendu assez long mais encore convenable La prise en compte de nombreux effets physiques lui donne un grand potentiel Ce module servira donc faire les rendus et les calculs sur lesquels l on pourra ensuite travailler car il combine le meilleur des deux mondes Avantages Calcul de la sc ne en temps r el Permet l affichage d un gros fichier de g om trie rapidement Sinejeq Prise en compte des ph nom nes physiques tr s limit e Un rendu qui pourrait tre plus r aliste 4 sjnejeg Passons maintenant au module de photon mapping Ce module est un module en plusieurs tapes qui permet d avoir une gestion des photons et de la lumiere beaucoup plus pouss e Mais ce module de par son nombre d tapes souffre d une lourdeur et d une lenteur dans les calculs Il servira surtout lorsque l on veut voir avec Gestion des ph nom nes physiques Qualit s du rendu L pr cision le trajet et les
109. res acc l ratrices et le raytracing Une des t ches primordiales du lancer de rayons est donc de calculer les points d intersection entre les rayons et la sc ne 3D Un kd Tree ou une autre structure acc l ratrice va permettre d acc l rer ce traitement entre rayons et g om tries qui est l tape la plus couteuse en temps de calcul En effet au lieu de tester les intersections entre un rayon et tous les objets ou triangles de la sc ne on teste les intersections uniquement avec les objets contenus dans les volumes travers s par le rayon Il va donc falloir parcourir le kd Tree de volume en volume en testant s il y a intersection ou non avec les objets du volume travers s il n est pas vide Plus le rayon traverse de volumes vides moins il y a d intersections avec des objets calculer ce qui permet de diminuer le temps n cessaire pour trouver le point d intersection du rayon avec la sc ne C est pourquoi il tait int ressant de maximiser la taille des volumes vides lors de la construction du kd Tree Un algorithme de parcours d un kd Tree dans le cas du lancer de rayon prend en entr e le kd Tree et le rayon et rend en sortie le premier point d intersection du rayon avec la sc ne Cet algorithme r cursif parcourt exactement une fois tous les noeuds Camera Generate Eye Rays ui Grid of Traverse Tavese E et toutes les feuilles dont le volume correspondant est travers Triangle List gt Acceleration
110. rs possibles io inin 1 la probabilit que X prenne la valeur in sachant que X zi X 2i Xn 1 n 1 et Xn i ne d pend que dei et de i c est dire Pi Xn x 54 1 X1 SE 01 HERE Xn gt in zm Pi Xn in 1 Xn in L ensemble E o la suite X prend ses valeurs s appelle l espace des tats de la suite de Markov chaque l ment de E tant un tat possible de la chaine Markov Chain Monte Carlo L id e de base dans l algorithme MCMC est de d finir une chaine de Markov qui est int gr e dans une distribution stationnaire ce qui signifie que si le syst me tourne pendant un temps assez long la distribution des tats visit s sera proportionnelle la distribution d sir e D finir une chaine de Markov revient d finir une r gle de transition un processus pour s lectionner un nouvel tat x al atoirement qui d pend seulement de l tat x pr c dent Metropolis a mis au point une technique qui prend une r gle de transition qui peut ne pas produire la distribution m x souhait e mais qui la transforme en une que l on accepte Si on a une distribution T x x les r gles de transition de Metropolis opere en deux tapes 1 Choisir x en accord avec la distribution T x x 2 X x avecune probabilit min 1 r x n x sinon x x A l tape 1 on propose x comme tat suivant A l tape 2 cet tat est accept avec une probabilit n x n x appel e probabilit d acceptation sinon la tran
111. s appel e par le CPU device fonction ex cut e sur le GPU et appel e depuis une fonction GPU Les restrictions global Appelable de l h te ex cut e par le GPU ne peux pas avoir de r cursivit de variable statique de liste variable de param tre ne retourne rien Incompatible avec device device Appelable du GPU ex cut e sur le GPU r cursivit possible Incompatible avec global Les variables device int variable Variable dans la m moire global du GPU lente valide pendant la dur e du programme acc d e en interne par les threads est allou e par le CPU shared int variable Variable dans la m moire partag e du bloc commune aux threads d un m me bloc rapide taille r duite vie limit e au bloc device int variable Variable dans la m moire constante visible par tous les threads Attention si rien n est sp cifi la variable ira dans le registre qui est une m moire rapide associ e au thread Master Physique et Informatique ANNEXES ee Rapport de Stage Les principales fonctions de bases cudaThreadSynchronize bloque jusqu ce que le device ait termin les t ches demand es pr c demment cudaChooseDevice retourne le device qui correspond aux propri t s sp cifi es cudaGetDevice retourne le device utilis actuellement cudaGetDeviceCount retourne le nombre de device capable de faire du GPGPU cudaGetDeviceProperties retourne les informations concernant le device cudaM
112. s gen rer les fichiers de jets yrn gt n Gestion de ets non choisi options d amp width x amp height Set image dimensions b num_devices gt Set desired number of GPUs options Use progressive Ambient Occlusion shader Use progressive Ambient Occlusion and Phong shader Hultiplier for the number of DO samples scale Scale ambient occlusion radius Use normal shader show illumination map Use one bounce Diffuse shader fr Use Fresnel shader fresnel reflexion ph Use Phong shader tambient shadows reflexion aa Use subpixel jittering to perform antialiasing oc Use orthographic camera cannot use HO mode with ortho l scale Scale lights by constant factor kd Kd Tree acceleration lbuh lbvuh acceleration huh bvh acceleration t Progressive Render Time par defaut ifs axe Display x y zZz axes Jets Utilisation du fichier Jet pour l avion Param tres lt chacun s par par un espace 5 m Pour rentrer une option vous tapez juste la commande qui vous convient exemple aop pour ambient occlusion and phong Vous pouvez taper plusieurs commandes la suite du moment qu elles sont s par es par un espace Il faut comprendre que tous ces param tres ainsi que ceux tap s pr c demment sont pass s ARTGpu par l interm diaire des tableaux d arguments argv argc Exemple de ligne de param tres aop aa m 4 t 20 ARTGpu se lance maintenant que la phase de pr paration et de param trage est finit sauf s
113. sa grande communaut et les nombreux cours et aides pr sentes ou bien Open plus g n raliste qui permet de lancer le programme sur n importe quelle machine Voici les diff rentes possibilit s offertes aujourd hui Mais il faut savoir que ce domaine est en pleine expansion et est tr s ala mode en ce moment car tr s jeune EE Probl matiques et solutions Master Physique et Informatique Rapport de Stage 3 Les choix Bien qu OpenCI offre une interop rabilit int ressante et une facilit de programmation nous d cidons d utiliser CUDA qui est un environnement de d veloppement beaucoup plus mature et qui permet une programmation de plus bas niveau avec son langage assembleur PTX 30000 EE m OpenCL 25000 e e e 20000 A E ji 6 DW O DW 15000 Ki amp 10000 AI a m 5000 10 000 100 000 1 000 000 10 000 000 Number of Variables Comparatif de performances entre OpenCl et CUDA Nombres de variables trait s par seconde dans un calcul source http arxiv org Nous utiliserons aussi la librairie Optix qui rend l assemblage d un raytracer la gestion de travers e d une sc ne les effets et la gestion de m moire beaucoup plus simple que pour une solution programm e de A Z De plus une fois l application fonctionnelle elle tirera partie des am liorations mat rielles futures sans n cessit de modification dans le code source D s que cela est poss
114. sition est rejet e et on recommence a premi re tape Si la chaine de Markov est capable de passer de n importe quel tats du domaine un autre en utilisant un nombre limit de pas on d finit cette chaine comme ergodique et on est assur de converger vers l quilibre Cette algorithme de Metropolis fonctionne uniquement quand T x x T x x En 1970 Hastings proposa une nouvelle probabilit d acceptation r x x min 1 n x T x x n x T x x C est cet algorithme qui est la base de la m thode de rendu MCMC Dans le contexte d un rendu graphique l espace des tats est l espace de tous les chemins de la sc ne les points de l espace sont les chemins et la distribution de probabilit d sir e pour les chemins est proportionnelle leur contribution au rendu de l image la quantit d illumination qu ils apportent la cam ra L image finale est la projection de la distribution de ces chemins sur une image plane Pour viter les pertes de performances dues une acceptation des tats trop faibles on va accepter avec plus de facilit les chemins qui ont une quantit de lumi re plus importante Une fois les chemins s lectionn s on utilise une m thode de rendu de type path tracing bidirectionnel MCMC ou m thode classique On a vu dans le IV que lors de notre rendu on pouvait choisir entre la m thode MCMC ou classique Si on s lectionne la m thode classique le path tracing va parcourir chacun
115. squ au calcul de l chauffement tout est juste v rification avec des mod les trouv s sur internet et dans des cours pour la masse volumique de l air le nombre Mach pression et temp rature du fluide Ces valeurs incompl tes viennent du fait que l on calcul la temp rature d chauffement sur un temps dt pour un seul volume de tuy re Cependant le fluide une vitesse pour avoir l chauffement total de la tuy re pendant le fonctionnement de l appareil il faut faire en sorte que le programme prenne en compte le temps total pendant lequel l air chaud est ject Il faut donc ajouter cette notion de vitesse de fluide afin d avoir la valeur finale de la temp rature de la tuyere Connaissant la vitesse du fluide le volume de la tuyere l l vation de la temp rature sur un temps dt il sera facile de mettre en place ce calcul De plus le refroidissement par l air ext rieur sera aussi pris en compte La tuy re devrait donc chauffer jusqu une valeur critique pour ensuite se stabiliser EN Modele thermique appliqu aux tuyeres dans Crira Master Physique et Informatique Rapport de Stage Master Physique et Informatique Modele thermique appliqu aux tuy res dans Crira NE Rapport de Stage VII Conclusion L objectif premier de ce stage tait la r alisation d une subdivision de l espace sous GPU Comme on l a vu tout au long de ce rapport j ai d velopp un logiciel outil ARTGpu Ce logiciel est une vitrine des possibi
116. t comportement des photons light path eye path shadowrays screen light source qw eye point Parcours des rayons dans la sc ne source http graphics ucsd edu Monte Carlo Le terme m thode de Monte Carlo d signe toute m thode visant calculer une valeur num rique en utilisant des proc d s al atoires Le nom de ces m thodes qui fait allusion aux jeux de hasard pratiqu s a Monte Carlo a t invent en 1947 par Nicholas Metropolis Les m thodes de Monte Carlo sont particuli rement utilis es pour calculer des int grales en dimensions plus grandes que 1 en particulier pour calculer des surfaces et des volumes Elles sont galement couramment utilis es en physique des particules oU des simulations probabilistes permettent d estimer la forme d un signal ou la sensibilit d un d tecteur La comparaison des donn es mesur es ces simulations peut permettre de mettre en vidence des caract ristiques inattendues par exemple de nouvelles particules NO Les m thodes de rendu expliqu es par la physique Master Physique et Informatique Rapport de Stage D finition Les chaines de Markov On appelle chaine de Markov une suite de variables al atoires X valeurs dans un espace probabilis E B P telle que pour chaque n connaissant la valeur de X X soit ind pendante de X pour k inf rieur ou gal a n 1 Autrement dit pour tout n et pour toutes valeu
117. t par un pixel avec P le point d intersection On calcule la contribution de la source vers P en tra ant les rayons d ombres Si un rayon d ombre croise un objet opaque entre P et la lumi re source alors P est l ombre On calcule la contribution P des autres points de la sc ne en tra ant des rayons secondaires r fl chies et r fract es Un rayon r fl chi est trac e seulement si le mat riau est sp culaire Un rayon r fract est trac e seulement si le mat riau est transparent Si un rayon secondaire croise la sc ne un point P on calcule la contribution des sources a P en tracant les rayons d ombres Chaque rayon apporte sa contribution la luminance d un point y eye incident ray a shadow reflected 1 feeler ray screen H Y nearest j intersected refracted ray world coordinates Exemple d taill de raytracing source alrg org EM Introduction aux notions essentielles Master Physique et Informatique Rapport de Stage 2 Path Tracing et Photon Mapping L illumination globale est un point critique dans la g n ration d images de synth se r alistes Les algorithmes d illumination globale prennent en compte non seulement la lumi re partant directement d une source de lumi re illumination directe mais aussi la lumi re venant d une r flexion illumination indirecte Si l on souhaitait reproduire une simulation parfaite de ce ph nom ne on n en
118. tilisation d une couleur d arri re plan unie que vous rentrerez vous m me D env Utilisation d une image type hdr qui fera office d environnement map de la sc ne Le programme vous demandera de rentrer son chemin juste apr s et si une image est d j pr sente il vous demande si vous voulez l utiliser ou non GG juste appuyer sur Entr e sans choisir d option chargera les param tres par d faut y N Background options miss Couleur d arri re plan uniforme enu Environnement Mapping Viens ensuite le script mat riaux pl qui s ex cute et qui va soit vous afficher les informations du mtl existant et faire les conversions des textures si n cessaire soit cr er un fichier mtl gr ce un fichier r f rence Data BRDF fournit par Crira iLe fichier rafale mtl existe Aucune conversion d image n cessaire 111 ya 3 materiaux dans le fichier Un choix vous est ensuite demand si vous avez choisi le module Raytracing Utiliser les jets ou pas Si vous choisissez de les utiliser le script jets pl va convertir le fichier jet SDM format bdd fournit par Crira au format obj Si vous choisissez dans les options de rendu l option jets n avec le nombre de jets afficher ARTGpu va int grer les jets dans la sc ne Ensuite vous avez deux types d options les options Opengl qui touchent la fen tre windows et les options de rendu qui vont modifier la fa on dont ARTGpu fait les calculs Voulez vou
119. tions depuis un point d une surface ceux qui atteignent l arri re plan ou une distance d finie accroissent la luminosit de la surface alors que ceux qui rencontrent une autre surface ne donnent pas d illumination Rendu d une image en ambient occlusion Fichier hdr Un fichier image hdr est un fichier image qui est cod avec le format RGBE Il stocke les pixels dans un octet pour chacune des composantes RGB rouge vert bleu avec un 4eme octet partag Il stocke donc quatre octets par pixel Le plus grand avantage du RGBE est qu il permet au pixel d avoir une plage tendue de valeur Souvent lorsque les images sont g n r es partir des simulations de lumi re la gamme de valeurs de pixels est beaucoup plus grande que celle du format standard o 255 En cons quence les pixels clairs sont soit ramen es 255 soit finissent par perdre toute leur pr cision En utilisant un exposant commun les gains du format RGBE nous permettent de ne pas utiliser des valeurs en virgule flottante cod es sur 12 octets par pixel Le format permet de g rer des pixels tr s lumineux sans perte de pr cision pour les zones fonc es Les nombres virgule flottante Les nombres virgule flottante sont les nombres les plus souvent utilis s dans un ordinateur pour repr senter des valeurs non enti res Ce sont des approximations de nombres r els Les nombres virgule flottante poss dent un signe s dans 1 1 une mantisse m
120. ure memory L h te est responsable de l ex cution des parties s quentielles de l application GPU est le processeur graphique General Purpose Graphics Processor Unit Device est le GPU connect l h te et qui va ex cuter les parties de calcul intensif bas sur un parall lisme de donn es Le device ou p riph rique est responsable de l ex cution de la partie parallele de l application Kernel est une fonction qui peut tre appel e depuis l h te et qui est ex cut e en parall le sur le device CUDA par de nombreux threads Le kernel est ex cut simultan ment par des milliers de threads b Notions de threads grille et blocs CUDA adopte la hi rarchie suivante un kernel est un programme ex cut par un ensemble de threads ind pendants s ex cutant en parall le sur le GPU Les threads fils d instructions sont group s en blocs qui cooperent et traitent le m me code crit en CUDA C sur les donn es diff rentes li es au num ro de chaque thread Max 1024 threads par bloc Les blocs sont group s en grille et s x cutent dans n importe quel ordre il n y a pas de synchronisation inter blocs Max Dg x lt 65535 Dg y lt 65535 Dg z 1 Les threads de 2 blocs diff rents ne communiquent pas Les appels et identifications des blocs threads Nombre de blocs dans la grille dim3 gridDim gridDim x grimDim y grimDim z 1 Nombre de threads par blocs dim3 blockDim blockDim x blockDim y blockDim z In
121. vons une liste des faces qu il contient EUM Introduction aux notions essentielles Master Physique et Informatique Rapport de Stage F f P4 5 e bei f y L root node 2 levels Exemple de partitionnement de l espace avec un Octree source google image Le BVH Un BVH est un arbre de volumes englobant En bas de la hi rarchie la taille du volume est juste assez grande pour englober un objet unique ou dans certains cas une petite fraction d un objet Ouand on monte dans la hi rarchie chaque noeud a son propre volume qui englobe bien tous les volumes du dessous A la racine de l arbre on trouve un volume qui englobe tous les volumes de l arbre et donc de la sc ne E LL Py s LE TE E KTTT Ta hd y Ze a de M KE gt e T AR WV WA A Exemple de partitionnement de l espace autour d un objet par la m thode du kd tree source google image Pour acc l rer la cr ation et le parcours de ces structures de donn es type kd tree ou bvh l octree devient beaucoup plus rare on utilise des algorithmes sp cifiques La SAH surface area heuristic permet d estimer priori le co t de parcours de l arbre lors de sa construction Cela permet de choisir pendant la construction les plans s parateurs et les crit res de fin qui minimiseront ce co t Master Physique et Informatique Introduction aux notions essentielles ENTM Rapport de Stage 4 Les structu
122. voy e gt kd 0 1 constante li e la composante diffuse gt ks 0 1 constante li e la composante sp culaire gt amp gt 1 constante li e a la brillance du mat riau d finit la largeur du lobe autour du sp culaire Plus a est grand plus la surface est brillante Cette constante peut prendre des valeurs lev es 10 100 ou plus On appelle a id et is l intensit des lumi res incidentes ambiante diffuse et sp culaire la Id Is et les intensit s r fl chies tant le total On d finit les vecteurs suivants Pour la lumi re Pour la normale a la surface Pour la direction de vue de l observateur et q Pour la direction dans laquelle serait r fl chie la lumi re sur un miroir q Sg d duit par la relation 222 2 2 2 22250 2 2 R N L N L N L Tous ces vecteurs doivent tre normalis s pour que les produits scalaires donnent juste le cosinus de l angle entre les vecteurs MEN Les m thodes de rendu expliqu es par la physique Master Physique et Informatique Rapport de Stage Formules La composante ambiante a est simplement donn e par la ia x ka La composante diffuse ld est donn e par Id id kd oie Id kd cos0 Id est maximale lorsque la lumi re arrive sur la surface selon la direction normale c est dire Dcus E ec y La composante sp culaire Is est donn e par Is is x ks eo is ks coso Si d Is est maximale Plus
123. yon Ceci permet d avoir la possibilit de changer d algorithme de rendu ou de faire du rendu multi pass Ray Types Dans Optix il y a diff rents types de rayons tableaux ci contre selon ce que l on veut faire On fait la distinction entre les rayons g n r s pour trouver la couleur et ceux adiance RadiancePL Compute color Payload Closest Hit Any Hit utilis s pour d terminer la visibilit d une source de lumi re shadows ray Cette s paration offre plus de modularit et plus de performance Pour sauvegarder le r sultat de couleur ou keep track of recursion depth ShadowPL 1 Compute shadow attenuation le facteur d att nuation ou autre on and terminate ge ji i E ray if opaque utilise un ray payload qui est une i structure de donn es associ e chaque rayon Les diff rents types de rayons dans Optix source Nvidia Variables Optix utilise des variables pour passer des param tres dans les param tres de configurations des programmes Chaque variable est li e a un context une g om trie une s lection un programme Elle est visible par l objet laquelle elle est li e et ces enfants Cependant les variables li es un context sont visibles par tous les autres objets Graph Nodes Quand un rayon est trac avec la fonction rtTrace un noeud est cr qui sp cifie que l on est en haut de l arbre L application host g n re cet arbre en assemblant un add
124. ytracing Le lancer de rayon anglais ray tracing est une technique de rendu en synth se d image simulant le parcours inverse de la lumi re on calcule les clairages de la cam ra vers les objets puis vers les lumi res alors que la lumi re va de la sc ne vers l il Path Tracing Le path tracing est une technique de lancer de rayon ray tracing utilis e pour d terminer l illumination globale d une scene 3D pouvant aller jusqu g n rer l image finale par une constitution progressive L image n est d abord qu un brouillard de pixels qui s affine progressivement jusqu tre d barrass e presque compl tement de son grain Photon Mapping le photon mapping est un algorithme d illumination global utilis pour simuler l interaction de la lumi re avec diff rents objets de maniere r aliste ll est capable de simuler la r fraction de la lumi re travers une substance transparente comme l eau ou le verre les inter r flexions diffuses entre objets clair s et certains effets volumiques produits par des milieux comme le brouillard ou la fum e Radiosit La radiosit est une technique de calcul d clairage ou illumination d une scene 3D Elle utilise les formules physiques de transfert radiatif de la lumi re entre les diff rentes surfaces l mentaires composant la scene L illumination est dite globale car l illumination de chaque surface l mentaire ne peut tre calcul e s par ment des autres et le systeme mod

Download Pdf Manuals

image

Related Search

Related Contents

Tektronix 7A29 User's Manual  Samsung Aspirateur Robot Navibot - SR8847  [U4.84.01] Opérateur COMB_SISM_MODAL    Manuals - Billiger.de  OK 33- THR - Osaka Solutions  Optoma DX606 data projector  ネットワークビデオレコーダー  User Manual - Spectare Products  取扱説明書 - 鶴賀電機  

Copyright © All rights reserved.
Failed to retrieve file