350 likes | 535 Views
Visualisation de fonds marins. Présenté par: Alexandre AMALRIC Fabrice FOURNET Mathieu PERROUD. Introduction. But du projet : Import de données topographiques Chargement d’objets (faune, flore…) Édition de trajectoires Texturing & Effets spéciaux Portabilité. Plan. Base du projet :
E N D
Visualisation de fonds marins. Présenté par: Alexandre AMALRIC Fabrice FOURNET Mathieu PERROUD
Introduction • But du projet : • Import de données topographiques • Chargement d’objets (faune, flore…) • Édition de trajectoires • Texturing & Effets spéciaux • Portabilité
Plan • Base du projet : • 3DTerragen
3DTerragen & Oceanyd • Outils utilisés • IDE : • Visual C++ Express 2005 • XCode • API & SDK : • wxWidgets • GLEW • OpenGL • Langage : • C++
3DTerragen • Algorithme de visualisation: • « Real time Optimally Adaptating Meshes » (Duchaineau) • Découpage en patchs • Tessellation sélective • Algorithme de « Split and merge » • Critères de découpage • Rendu récursif
3DTerragen • Limites • Boucles de rendu basiques • Culling 2,5D • Trajectoire simpliste • Consommation mémoire • Portabilité réduite
Plan • Base du projet : • 3DTerragen • Développements effectués : • Lecture de fichiers XYZ
Projet Oceanyd • Support du format .xyz • Relevés sonar • Inversion de la profondeur • Erreurs d’acquisition • Filtrage • Support possible de .xyzb • Données de biocénose
Filtrage • Top Hat Modifié
Plan • Base du projet : • 3DTerragen • Développements effectués : • Lecture de fichiers XYZ • Optimisations du moteur d’affichage
Projet Oceanyd • Optimisations du moteur d’affichage • Frustum culling 3D • Critères de tesselation supplémentaires • Vertex Buffers • Organisation des éléments
Projet Oceanyd • Frustum culling 3D
Projet Oceanyd • Frustum culling 3D • Récupération du frustum OpenGL • M = V * P • Normalisation des plans • Tests sur les demi-espaces • Point • Boite • Sphère
Projet Oceanyd • Critères de tesselation supplémentaires • Possibles grâce au culling • Paliers de résolution • Inspirée du MipMapping • Meilleure répartition des triangles • Optimisation pour Z-Buffer hardware • Tri rapide sur distance
Projet Oceanyd • Vertex Buffer • Batching (un appel par géométrie) • Entrelacé • Indexé • Array : • Utilisation de la RAM • Object : • Utilisation de la VRAM (+ AGP)
Projet Oceanyd • Organisation des éléments • 3 types d’objets (Faune, Flore, Autres…) • Faune et autres dépendants du monde • Flore dépendante des patchs • Culling optimisé
Plan • Base du projet : • 3DTerragen • Développements effectués : • Lecture de fichiers XYZ • Optimisations du moteur d’affichage • Nouvelle méthode d’édition de trajectoire
Projet Oceanyd • Trajectoire • Utilisation d’arcs de splines de Catmull-rom • Passe par les points de contrôles • q(t) = 0.5 * [ t^3 t^2 t 1 ] * [ -1 3 -3 1 ] * [ p0 ] [ 2 -5 4 -1 ] [ p1 ] [ -1 0 1 0 ] [ p2 ] [ 0 2 0 0 ] [ p3 ] • Détection des collisions
Projet Oceanyd • Trajectoire • Classe checkpoint • Possibilité d’ajout de propriétés (temps d’arrêt) • Calcul en 4 étapes • Estimation de la longueur de l’arc • Insertion de points supplémentaires • Calcul des nouveaux arcs • Élévation des points si collision
Projet Oceanyd • Trajectoire
Plan • Base du projet : • 3DTerragen • Développements effectués : • Lecture de fichiers XYZ • Optimisations du moteur d’affichage • Nouvelle méthode d’édition de trajectoire • Réalisme accru
Projet Oceanyd • Réalisme accru • Texturing • UV Planar Mapping • Paramétrisation S et T • Nombre de répétitions/taille du terrain • Animation • Transparence (alpha masking) • Plan d’eau • Boîte d’environnement
Projet Oceanyd • Réalisme accru • Effets spéciaux • Caustiques (multitexturing) • Déformation sous-marine • Matrice de projection animée • Brouillard volumétrique • Immersion • Dérive sous-marine • Cinétique
Plan • Base du projet : • 3DTerragen • Développements effectués : • Lecture de fichiers XYZ • Optimisations du moteur d’affichage • Nouvelle méthode d’édition de trajectoire • Réalisme accru • Support de formats de fichiers multiples
Projet Oceanyd • Formats de fichiers multiples • Bitmaps • PGM, PPM • BMP (gris, 8/24 bits + RLE) • TGA (gris, 8/24/32 bits + RLE) • Classe texture • Détection automatique du format • Chargement OpenGL
Projet Oceanyd • Formats de fichiers multiples • 3D • Chargement de fichiers 3DS triangulés • Gestion d’instances • Matériaux, textures et objets multiples • Affichage VBA • Classe CObject3D • Chargement de modèles • Instanciation • Volumes englobants
Plan • Base du projet : • 3DTerragen • Développements effectués : • Lecture de fichiers XYZ • Optimisations du moteur d’affichage • Nouvelle méthode d’édition de trajectoire • Réalisme accru • Support de formats de fichiers multiples • Portabilité
Projet Oceanyd • Portabilité • wxWidgets, OpenGL • Comportement des compilateurs • Représentation des mots élémentaires • Little / Big Endian • Byte swapping • Coûts en temps de travail
Projet Oceanyd • Benchmark • Athlon 64 3200+ (2Ghz), 1Go RAM 400Mhz, Geforce6600GT 128 MO PCI Express 16X, Windows XP Pro SP2 • 3DTerragen VS Oceanyd à 100k triangles texturés haute résolution et effets spéciaux
Projet Oceanyd • Résultats • +2 fois plus rapide • Application portable • Code objet amélioré • Implémentations futures facilitées • 24 classes • Ouverture sur d’autres formats
Projet Oceanyd • Développements futurs • Brouillard sur les objets • Modèles multi résolutions • Effet spéciaux : God Light… • Animation des modèles (key frames) • I.A. • Édition de scripts de scènes
Projet Oceanyd • Ressources • ROAM: http://www.llnl.gov/graphics/ROAM • http://www2.ravensoft.com/users/ggribb/plane%20extraction.pdf • 3DTerragen: http://shingoyab.free.fr/old_project/ROAM/