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
Petit guide explicatif…
Advertisements

La recherche de chemin optimal
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
for Painting and Rendering Textures on Unparameterized Models
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
GEF 435 Principes des systèmes d’exploitation
Etude des structures de donnée s au coeur des algos 3D des FPS.(BL2) Vos noms ici, encadreur, etc…
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.
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
Apprentissage du jeu de morpion
TER Simulation Spatiale
Prise de décision dans les shooters TER 08/09 Sandrine Buendia
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.
Maths, Fourmis, Informatique et Petits Chevaux - 1
Heuristiques A. Introduction B. Recherche d ’une branche
Jeu dOthello Projet dAlgorithmique et Programmation.
Optimisation et Complexité
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,
Indexation 1. Concepts de base 2. Arbre B 3. Indexes secondaires.
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
Algorithmes d ’approximation
IFT3730 : Infographie 3D Systèmes et modèles graphiques Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
Programmation non procédurale Le projet ECOLE 2000
IFT3355: Infographie Visibilité
Pour le chemin le plus court pour tous les couples
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
Thomas LOPEZ - Equipe BUNRAKU Candidature au monitorat INSA– Vendredi 10 Octobre 2008.
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.
Enveloppe convexe et triangulation de Delaunay
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.
Projet de Maîtrise Simulation 3D d’atomes robotiques Detanger Pierre-Gilles He Xue Feng Mauny Stéphane Villers Julien.
LCIN4U73 Bases géométriques de l’imagerie
S’initier à Google Sketch Up avec la création d’une maison Commencez par ouvrir le logiciel, nous allons afficher tous les outils dont nous aurons besoin.
La 3D.
Plan du cours Cours 1,2 : le pipeline graphique
Vous présente en quelques réalisations un réel savoir-faire, le fruit de longues années d’expériences, aujourd’hui à votre service. Toutes les fonctionnalités.
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 (statique) Découpage du monde en Secteurs –Quand on modélise lunivers, on le découpe en secteurs –Les secteurs sont mitoyens lorsquils ont un mur commun. Deux secteurs A et B sont voisins si une partie de B est visible depuis A. Portail = partie qui relie deux secteurs

Principe (dynamique) Les parties visibles par la caméra sont recalculées r écursivement. 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 marqué toutes les parties visibles : on les affiche

Avantages/Inconvénients Naffiche que ce qui est visible Nécessite une modélisation ad 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.

Modélisation des pièces Information dans un fichier annexe : syntaxe Ce nest pas toujours simple, problèmes liés à la concavité des pièces et des coins.

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 (simples) en complément du frustum dans les terrains numériques niveau de détail dynamique Utilisés dans les jeux de voiture

ca depend du type de camera

Octrees (efficaces ) Dans les jeux à la 3eme personne Efficaces avec les collisions Pour des mondes en hauteurs

Arbres BSP (optimaux) Portails (mélangés) Utilisés dans les FPS les plus fluides. Nombreux cas particuliers, donc difficiles à implémenter. En complément des arbres BSP. Technique du Lancer de rayons