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

Slides:



Advertisements
Présentations similaires
Un environnement de développement éducatif
Advertisements

Petit guide explicatif…
1 1 Projet doption Réalité Virtuelle Simulation dun habitat domotisé Florent Renault Xiaoyu Gao Mercredi 27 mai 2009.
Constructive Volume Geometry (CVG) Article de Min Chen & John V. Trucker COMPUTER GRAPHICS Benoît Capelli – Stéphane Renaudie DESS IMM
Carsten Dachsbacher Christian Vogelgsang Marc Stamminger
Hierarchical Z-Buffer Visibility
Fanny CHEVALIER Guillaume CAURANT
RENDU DE TERRAIN Problématique : Rendre une très large zone de terrains en la simplifiant au maximum pour réduire le nombre de polygones à afficher. A.Bailly.
Unstructured Lumigraph Rendering
The Reyes Image Rendering Architecture
Visible Surface Determination (Hidden Surface Removal)
Technique des Surfels Surfels: Surface Elements as Rendering Primitives SIGGRAPH 2000 H.Pfiste, J.van Baar, M.Zwicker, M.Gross.
Calcul géométrique avec des données incertaines
Introduction à l’Algorithmique
Etudiants : Benjamin BLANC Cyrille KLUZEK Encadreur :
Détection des collisions dans un moteur 3D temps réel
GEF 243B Programmation informatique appliquée
GEF 435 Principes des systèmes d’exploitation
Introduction Pour concrétiser l’enseignement assisté par ordinateur
TER BL21 Étude des structures de données au cœur des algorithmes 3D des jeux vidéos de type FPS. (BL2) Encadrant :Participants : Michel BUFFA Jean-François.
Sujet BL1 : Simulateur de comportement réactif Bernard Clément Barelli Nicolas Maitrehut Loïc Ould Sidina Mahi Encadrant : Mr Michel Buffa.
Etude des structures de donnée s au coeur des algos 3D des FPS.(BL2) Vos noms ici, encadreur, etc…
Scène de test (60000 polygones, 4000m2)
Comment afficher rapidement un univers immense ?.
Algorithmes à base darbre BSP. Principe Se servir dune structure arborescente afin déliminer le traitement dune branche entière sur un test de visualisation.
Xavier Décoret* Frédo Durand° François Sillion*
Lancer de rayons interactif
Réalité virtuelle et interactions avec un individu
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
Utilisation des tableaux
Les étapes de développement d’un jeu vidéo
Apprentissage du jeu de morpion
TER Simulation Spatiale
Prise de décision dans les shooters TER 08/09 Sandrine Buendia
Lenvironnement de travail en lien avec la première journée décole.
Dérécursivation Dérécursiver, c’est transformer un algorithme récursif en un algorithme équivalent ne contenant pas d’appels récursifs. Récursivité terminale.
Jeu dOthello Projet dAlgorithmique et Programmation.
Projet d’Algorithmique et Programmation
Placer ici une ou plusieurs images, la date et vos noms
Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,
IFT3730 : Infographie 3D Systèmes et modèles graphiques Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.
Les systèmes multiplateformes
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
Programmation procédurale Le projet C O N C O R D E
Programmation non procédurale Le projet ECOLE 2000
IFT3355: Infographie Visibilité
Pour le chemin le plus court pour tous les couples
RAPPEL Qu’est ce qu’une structure de contrôle itérative ?
Les images de synthèses Duprat Anatole. Les images de synthèses consistent en la création assistée par ordinateur, d'images numériques. Il existe différentes.
Création en images de Synthèse Modèles de rendu d’une scène 3D
Optimisation de requêtes
La Villette Squeak, Logiciel de Robotique / programmation La Villette Nous sommes tout d’abord arrivés sur une activité. On avait l’impression de se trouver.
Modèles Mathématiques et représentation discrètes pour la description des images couleur Luc Brun.
DESIGN MULTIMÉDIA Initiation aux bases de La scénarisation multimédia
Etude des structures de données au coeur des algos 3D des FPS.(BL2) Vos noms ici, encadreur, etc…
Flash : Introduction Parcours I3L – L3 Année 2009 – 2010 Auriane FAURE.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Performance de circuits.
Credits : Joëlle Thollot, Hector Briceño, Edmond Boyer
Cours d'algorithmique 10 / Intranet 1 19 décembre 2006 Cours d’Algorithmique Logique de Hoare (fin) : Les boucles et les invariants.
Synthèse d’images Introduction Doc. non diffusé En cours d’élaboration.
Synthèse d’images et Rendu Réaliste Compression Progressive de Modèles 3D DOMENGET Bruno DUMAS Benjamin EISTI.
CPI/BTS 2 Algorithmique & Programmation La récursivité Algo – Prog CPI/BTS2 – M. Dravet – 14/09/2003 Dernière modification: 14/09/2003.
Réalisation d’un logiciel de Chiffrement RSA.
La 3D.
Astrophotographie HDR
Plan du cours Cours 1,2 : le pipeline graphique
Tétraédrisation de domaines volumiques avec des hiérarchies adaptatives Par A. Duprat et R. Abelé Suivit par M. Uribe-Lobello.
Introduction au HTML Qu’est ce que le HTML ?
CATALOGUE DES FORMATIONS Business Objects 2015 Formateur : KAMAL Laiss.
GEOMETRIE du cycle 1 au cycle 3 quelques pistes
Transcription de la présentation:

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

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)…

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

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

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 !

Comment afficher rapidement un univers immense ?

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

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

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

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

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.

Scène de test ( polygones, 4000m2)

Algorithme à base de quadtrees

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

Exemple de quadtree Chaque feuille contient une list e de polygones

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)

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

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…

Algorithme à base dOctrees

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

Construction récursive

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

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

Algorithmes à base darbre BSPs

Principe Etc…

Algorithme à base de portails

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

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

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.

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

Synthèse

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

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

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

ca depend du type de camera

Octrees dans les lara like efficaces avec les collisions

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