La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Etude des structures de donnée s au coeur des algos 3D des FPS.(BL2) Vos noms ici, encadreur, etc…

Présentations similaires


Présentation au sujet: "Etude des structures de donnée s au coeur des algos 3D des FPS.(BL2) Vos noms ici, encadreur, etc…"— Transcription de la présentation:

1 Etude des structures de donnée s au coeur des algos 3D des FPS.(BL2) Vos noms ici, encadreur, etc…

2 Introduction Contexte : cours de synthèse dimage très in téressant… mais seulement 6 séances –Programme de TPs/Mini projet limité, –Envie den savoir plus, –Choix du TER avec notre encadreur Sujet du TER : étude des structures de donn ées et des algorithmes dans les jeux 3D de t ype FPS (Doom, Quake, Unreal)…

3 Introduction (suite) Intérêt avant tout pédagogique –Ecriture dun « vrai » moteur 3D, y compris limpléme ntation de nombreux concepts vus en cours.. –Utilisation dOpenGL/C++/… et des maths ! –Découverte dalgorithmes et de structures de données n ouveaux, non naïfs, –Rencontre avec un développeur de jeux vidéo, –Réutilisation de nos travaux par Mr Buffa en tant que tu toriaux/programmes dexemples

4 Plan de la présentation Afficher un univers immense, comment fair e vite ? Présentation de 4 algorithmes liés à des stru ctures de données adaptées, avec leurs impl émentations Comparaison/synthèse de ces algorithmes Conclusion

5 Remarque importante La plupart des illustrations sont issues du moteur 3 D que nous avons développé pour ce TER –Fonctionnalités multiples (texture mapping, éclairages, etc…), –12000 lignes de code, –Conception objet pensée vers lextensibilité (pour pouv oir changer les algorithmes de rendu facilement), –C++/Open GL, –Notre plate-forme de test !

6 Comment afficher rapidement un univers immense ?

7 Univers immense ? Rapidement = 60 images/s au moins ! Exemples : un bâtiment, un circuit, une ville, une région... Un tel univers peut contenir des millions de polygones : on ne va pas tous les afficher ! Pour aller vite : ne dessiner que ceux qui sont visibles (dans le champ de vision de l a caméra).

8 Le champ de vision sappelle le frustum En 3D, cest lespace compris entre les 6 plans. Calculer la partie visible = frustum culling

9 Exemple dalgorithme Un univers 3D = des millions de polygones, Si lunivers est plat, il suffit de plaquer une grille dont chaque case fait par exemple 10m2 Il suffit, quand on se déplace, de ne dessiner que c e qui se trouve dans les cases qui coupent le cham ps de vision. Si on a pré-calculé lassociation polygones/case, et si lunivers est statique, on a rapidement la liste de s cases visibles et donc la liste des polygones visib les

10 Illustration de lalgorithme précé dent Champs de vision Partie visible Partie non visible

11 Mais ce nest pas aussi simple ! Une simple grille ne suffit pas ! Ce nest pas effica ce et on a aussi envie aussi de : –Calculer des collisions, –Gérer les niveaux de détails, –Ne pas afficher ce qui se trouve « derrière un m ur »… etc… Les quatre algorithmes que nous avons étudiés rép ondent à certaines de ces conditions.

12 Scène de test ( polygones, 4000m2)

13 Algorithme à base de quadtrees

14 Principe Comme une grille, sauf que les cases ne font pas t outes la même taille. –Permet la gestion des niveaux de détails… On associe à chaque case les polygones quelle co ntient Construction –On part dune case qui fait toute la surface de lunivers –On découpe récursivement lunivers en cases de plus en plus petites. Au final, on a un « arbre de cases », chaque case é tant découpée en 4 cases

15 Exemple de quadtree Chaque feuille contient une list e de polygones

16 Comparaison grille/quadtree Beaucoup moins de tests avec le quadtree ! Très utilisé pour représenter des modèles numériq ues de terrain (gestion dynamique du niveau de dé tails, pas implémenté dans notre TER)

17 Exemple avec notre scène de test Ici une image avec une autre profondeur (sanbs quad), et comparer les perfs…

18 Conclusion sur les quadtrees Surtout adapté à des scènes 2D/2D et demie (grille s délévation, modèles numériques de terrains) Peu adaptés pour des bâtiments à étages, étant don né quon ne considère que les projections des poly gones au sol… quoique… Les prochains algorithmes répondent à ces limitati ons…

19 Algorithme à base dOctrees

20 Principe Idem quadtrees mais en 3D… Plus complexe à cause de la di mension supplé mentaire!

21 Construction récursive

22

23

24

25

26 Detection des collisions Legende ic i ! A quoi cor respondent les couleur s ?

27 Résultats Bien meilleur nombre dimages/s quavec le s quadtrees, Très intéressant pour la détection de collisio ns …

28 Algorithmes à base darbre BSPs

29 Principe Etc…

30 Algorithme à base de portails

31 Principe Découpage du monde en Secteurs –Quand on modélise lunivers, on le découpe en secteurs –Les secteurs sont mitoyens lorsquils ont une partie comm une, par exemple un mur Portail = partie qui relie deux secteurs – Par exemple une porte Deux secteurs sont voisins si il y a une partie de l un visib le quand on se trouve

32 Principe (dynamique) Entre chaque image les parties visibles par la camer a sont recalcul2es Recherche des parties visibles = parcours de graphe non orienté en profondeur –Nœuds = les pièces –Arêtes = un portail reliant deux secteurs Une fois le graphe parcouru, on a marqu2 toutes les parties visibles on les affiche

33 Avantages/Inconvénients N affiche pas les parties derriere les murs Nécessite une modélisation af hoc du monde –Impossible de lutiliser avec notre scène de test Non intégré au moteur 3D, mais tutorial de démonstration des principes, en 2D.

34 Modelisation des pieces Information dans un fichier annexe > syntaxe On a considere que c etait des parallelepipipedes Ce n est pas toujours le cas Editeur automatisant

35

36 Synthèse

37 Heighmap autre facon de creer un monde Pour illustrer la différence Quadtree/Octree Si il y a une montagne les quadtrees montre nt leurs limites screen

38 En dautres termes Quadtree : dans les jeux = circuit de voitures, ET modèle numérique de terrain + frustum = LO D Octree : dans les jeux style Lara BSP : le plus utilise quake like, unreal,6 optimisati ons multiples (arbres équilibrés, etc…) Portails : peu utilisés en tant que tels souvent rajo uter sur un algo lancer de rayon

39 Quatrees en compl2ment du frustum dans les te rrains num2rique > niveau de detail dqns les jeux de voiture

40 ca depend du type de camera

41 Octrees dans les lara like efficaces avec les collisions

42 Arbres BSP Portails utilis2s dans les FPS les plus c2l7bres mixes aux BSP 5lancer de rayon-


Télécharger ppt "Etude des structures de donnée s au coeur des algos 3D des FPS.(BL2) Vos noms ici, encadreur, etc…"

Présentations similaires


Annonces Google