gÉnÉrateur de documents 3d interactifs pdf u3d projet de bachelor | richard mathieu | 2009
TRANSCRIPT
GÉNÉRATEUR DE DOCUMENTS 3D INTERACTIFS PDF U3D
Projet de Bachelor | RICHARD Mathieu | 2009
PROJET DE BACHELOR
PrésentationU3DProjetRéalisationConclusion
2009 PDB| Mathieu RICHARD 1/42
PRESENTATION
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
Cadre Projet de Bachelor individuel sur 20
semaines (15 en cours et 5 à temps complet).
Sujet proposé par l’HEIG-VD et Mr Henri Röthlisberger
Domaine Projet lié à l’infographie et à la visualisation
3D Utilise un mécanisme de compression U3D s’intègre au fichier .pdf
2009 PDB| Mathieu RICHARD 2/42
PRESENTATION
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
Déroulement3 parties Une étude théorique du format La réalisation de module d’exportation Un projet pratique utilisant le module
développé précédemment
Planification Etude théorique : 7 semaines Réalisation modules : 7semaines Projet pratique : 5 semaines
2009 PDB| Mathieu RICHARD 3/42
PROJET DE BACHELOR
PrésentationU3DProjetRéalisationConclusion
2009 PDB| Mathieu RICHARD 4/42
U3D
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
Présentation du U3D Général: Universal 3D - Standard de
représentation de modèles 3D. Objectifs: Faciliter la visualisation et la
réutilisation de modèles 3D dans tous types d’applications.
Technologies: Compressé, utilisable en streaming, et non-propriétaire.
U3D est le seul format de représentation 3D intégrable et visualisable dans Adobe Reader (depuis version 7).
2009 PDB| Mathieu RICHARD 5/42
U3D
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 5/42
Motivation Absence de Standard: Après 30ans
d’utilisation de la CAO, toujours aucun réel standard n’existe. U3D veut devenir le .Jpeg de la 3D.
Pérennisation des données: Création d’un format indépendant des plateformes d’utilisations.
Développé l’usage de données 3D: Permet l’utilisation des données dans tous types de logiciels à toutes les étapes du développement.
U3D
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 7/42
Intervenants: 3DIF: Consortium industriel fondé par Intel dont
le but est de promouvoir l’utilisation de 3D grand public.
ECMA: Organisation de standardisation informatique.
Historique: version1: 2004, aboutissement du travail du
groupe TC43 réunit par ECMA. version2: 2005, U3D devient extensible. Cette
version est soumise à la normalisation ISO. version3: Corrections apportées suites au
processus de normalisation ISO. version4: Prise en charge des NURBS.
U3D
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 7/42
Fonctionnalités principales: Animations: U3D permet d’effectuer
différentes animations d’un même modèle 3D. Extensibilité: Permet de correspondre au
besoin du marché. Métadonnées: Permet d’ajouter des
informations à n’importe quel élément du modèle.
Niveau de détail ajustable (CLOD): Permet d’augmenter ou de diminuer la complexité du modèle en fonction des besoins.
Compression: Fichiers 3D légers.
U3D
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 8/42
Format: Format binaire: U3D est compressé et
stocké en représentation binaire. Compression: Algorithme Right
Hemisphere Adobe 3D Mesh Compression.
Structure: Blocs de définitions: Définissent tous les
éléments du modèle ainsi que leurs relations.
Blocs de continuations: Définissent les caractéristiques d’une entité du modèle.
U3D
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 9/42
Eléments: Graphe de scène: Structure en graphe
composé d’objets et de transformations. Données et métadonnée : Chaque bloc
contient des données et des métadonnées associées.
Références externes: Les ressources peuvent dans de nombreux cas être intégré au fichier ou référencé dans des fichiers externes (textures, animations, objets,…)
U3D
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 10/42
Types de blocs: Nœuds: Groupes, modèles, lumières,
vues. Générateurs Géométriques:
Générateurs CLOD, listes de points, listes de lignes, NURBS .
Modifieurs: Liste d’opérations permettant d’obtenir le rendus final d’un objet (Animations, rendu, CLOD modifieurs,…).
Ressources: lumières, vues, textures, matériaux, animations,…
U3D
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 11/42
Architecture : Palettes: Informations générales permettant de
construire une entité du graphe. Il existe différente palettes classées par type : Modèle, lumière, vue, shader, matériaux , textures, animations, nœuds.
U3D
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 12/42
Architecture : Nœuds: Construisent la structure complète de la
scène. Ils disposent des noms de leurs propriétés associées permettant d’obtenir l’information correspondante dans les palettes.
U3D
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 13/42
Architecture : Modifieurs: Définissent le rendu final d’une entité de
la scène.
U3D
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 14/42
Fichier U3D: Séquence de blocs: Structure de la
scène dans les blocs de déclarations, informations dans les blocs de continuations.
L’en tête principal permet d’identifier la version d’U3D, l’encodage utilisé, la taille du fichier,…
U3D
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 15/42
Blocs: Chaque bloc est encapsulé dans un structure identique :
Une champ block type permetd’identifier l’information et les Tailles de connaitre la taille des Données a lire. Le contenu du blocSe trouve dans la partie donnée.
PROJET DE BACHELOR
PrésentationU3DProjetRéalisationConclusion
2009 PDB| Mathieu RICHARD 16/42
PROJET
PRESENTATION
U3D
PROJET
RELISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 17/42
Cahier des charges Développer des outils permettant de
générer des fichiers U3D à partir d’un programme utilisant les librairies Java3D et OpenGL.
Créer une application utilisant les librairies créées dans la première partie du travail.
PROJET
PRESENTATION
U3D
PROJET
RELISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 18/42
JAVA3D Java3D est une librairie JAVA
permettant la représentation de scène 3D sous forme de graphe.
Java3D est un API de haut niveau permettant de disposer de la totalité de la scène à partir du nœud racine.
Les informations sont donc structurées en arbres et sont divisées en 3 principales catégories ( Nœuds, Groupes, Composants de Nœuds).
PROJET
PRESENTATION
U3D
PROJET
RELISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 19/42
Conversion JAVA3D en U3D
2 types d’implémentations ont été envisagées: Module d’exportation complet:
Conversion et écriture de la structure U3D à partir d’un graphe Java3D.
Module utilisant JReality: Conversion de Java3D en un graphe JReality puis utilisation du module d’exportation existant.
PROJET
PRESENTATION
U3D
PROJET
RELISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 20/42
Module complet d’exportation Java3D Avantages:
Rapide, pas de conversion inutile Modulable, correspond à nos besoin
Inconvénients: Réécriture de l’algorithme de
compression et du module d’écriture. Nécessite une préparation des
données dans une structure adéquate.
PROJET
PRESENTATION
U3D
PROJET
RELISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 21/42
Module d’exportation Java3D JReality Avantages:
Simple, conversion dans une structure existante
Nombreux outils existants dans les librairies JReality.
Inconvénients: Plus lent, passage par une strucutre
avancé intermédiaire. Dépend de la maintenance du projet
JReality.
PROJET
PRESENTATION
U3D
PROJET
RELISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 22/42
Conversion JAVA3D en U3D
Solution adoptée Module utilisant JReality.
Motivations Complexité de l’algorithme de
compression et du module d’écriture. Bénéfices des outils et de la
maintenance existante.
PROJET
PRESENTATION
U3D
PROJET
RELISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 10/19
Conversion OpenGL C/C++ en U3D
4 types d’implémentations ont été envisagées: Module d’exportation complet: Conversion et
écriture de la structure U3D à partir d’OpenGL. Module utilisant OpenSceneGraph: Conversion
de OpenGL en une structure OpenSceneGraphe puis exportation en réalisant un module complet ou à l’aide des librairies SourceForge.
Module utilisant Flex/Bison: Exportation en utilisant une analyse syntaxique du fichier source OpenGL.
Module utilisant les librairies Sourceforge: Conversion de OpenGL dans la structure ITF fournit par Souceforge puis exportation à l’aide des librairies.
PROJET
PRESENTATION
U3D
PROJET
RELISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 25/42
Module complet d’exportation C/C++ Avantages:
Rapide, pas de conversion inutile Modulable, correspond à nos besoin
Inconvénients: Réécriture de l’algorithme de
compression et du module d’écriture. Nécessite une préparation des
données dans une structure adéquate.
PROJET
PRESENTATION
U3D
PROJET
RELISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 26/42
Module d’exportation OpenSceneGraph Avantages:
Double usage, OpenGL et OpenSceneGraph
Structure de modélisation de la scène complète déjà existante.
Inconvénients: Réécriture de l’algorithme de
compression et du module d’écriture. Plus lent, passage par une structure
avancé intermédiaire.
PROJET
PRESENTATION
U3D
PROJET
RELISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 27/42
Module d’exportation Flex/Bison Avantages:
Aucune modification du développeur. Indépendant de l’exécution du
programme. Inconvénients:
Complexité de l’analyse synthaxique. Réécriture de l’algorithme de
compression et du module d’écriture.
PROJET
PRESENTATION
U3D
PROJET
RELISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 28/42
Module d’exportation SourceForge Avantages:
Simple, conversion dans une structure existante.
Outils d’exportation et de visualisation intermédiaire disponible
Inconvénients: Plus lent, passage par une structure
avancé intermédiaire. Faible documentation et
maintenance du projet
PROJET
PRESENTATION
U3D
PROJET
RELISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 29/42
Conversion OpenGL C/C++ en U3D
Solution adoptée Module utilisant les librairies SourceForge.
Motivations Complexité de l’algorithme de
compression et du module d’écriture. Bénéfices des outils existants. Seul solution réalisable dans le temps
disponible.
PROJET
PRESENTATION
U3D
PROJET
RELISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 30/42
Conversion OpenGL C/C++ en U3D
Solution adoptée Module utilisant les librairies SourceForge.
Motivations Complexité de l’algorithme de
compression et du module d’écriture. Bénéfices des outils existants. Seul solution réalisable dans le temps
disponible.
PROJET DE BACHELOR
PrésentationU3DProjetRéalisationConclusion
2009 PDB| Mathieu RICHARD 31/42
REALISATION
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 32/42
Cahier des charges module exportation
Réaliser un outil permettant d’exporter de manière simple une scène créée par le programmeur.
La totalité des fonctionnalités d’exportation ne sont pas nécessaires, la priorités des informations à exporter étant à définir.
REALISATION
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 33/42
JAVA Cube exporté via la module
REALISATION
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 14/19
Bilan Java Les librairies Java3D et JReality sont
bien documentées, c’est pourquoi il est agréable de travailler avec celles-ci.
JReality offrent des possibilités de visualisation ou des outils permettant de simplifier grandement les calculs géométriques.
L’exportation est actuellement fonctionnelle pour le géométrie et la position des objets.
REALISATION
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 14/19
C/C++ Le développement de la librairie C/C+
+ pour OpenGL à engendré davantage de difficultés.
Les librairies SourceForge existantes sont uniquement compatible avec Visual C++, malgré de nombreuses tentatives afin de les faires fonctionner avec un autre IDE, je n’ai pas réussi.
La recompilation complète des librairies est compliqué et fastidieuse.
REALISATION
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 36/42
Bilan C/C++ Les librairies SourceForges bien
que officielles ne sont que très peu documentées et le projet n’avance guère.
Le developpement d’un module complet est compliqué et fastidieux bien que des codes C++ permettant d’effectuer la compression sont founis dans le standard.
Le module C/C++ ne fonctionne actuellement pas.
REALISATION
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 37/42
Cahier des charges exemple pratique Réaliser un outil permettant l’intégration
de fichier U3D à des documents pdf existants.
Optionnel: Créer un module d’exportation Java 3D permettant de manière simple l’exportation d’une scène Java3D.
Dans un premier temps, le module d’insertion dans les Pdfs permettra de remplacer une image par une contenu 3D puis dans la mesure du temps aparti, permettra l’insertion directement.
REALISATION
PRESENTATION
U3D
PROJET
REALISATION
CONCLUSION
2009 PDB| Mathieu RICHARD 38/42
Bilan Réalisation Le fonctionnement du module
n’est pas complet à l’heure actuelle. Celui-ci remplace l’image mais le contenu 3D ne fonctionne pas alors que le fichier U3D est correct. Ce problème reste à solutionner au cours de la dernière semaine.
PROJET DE BACHELOR
PrésentationModèleImplémentationExempleConclusion
2009 PDB| Mathieu RICHARD 39/42
CONCLUSION
Présentation
Modèle
Implémentation
Exemple
Conclusion
U3D est un standard, mais celui-ci est très compliqué à utiliser. On peut d’ailleurs le remarquer par le faible nombre d’outil en faisant usage.
La documentation, mis à part le standard très technique, est absente et certaines parties ne sont expliquées qu’en pseudo code (compression).
U 3D est un format puissant, évolutif mais à utiliser actuellement uniquement si l’on en a un réel intérêt étant donnée la complexité de sa mise en œuvre.
2009 PDB| Mathieu RICHARD 40/42
PROJET DE BACHELOR
2009 PDB| Mathieu RICHARD 41/42
Q&A
WEBOGRAPHIE
http://www.smacchia.com/Res/dotnet/UnivNET%20LAB8%20le%20design%20pattern%20commande.doc
2009 PDB| Mathieu RICHARD 42/42
GÉNÉRATEUR DE DOCUMENTS 3D
INTERACTIFS PDF U3D
Projet de Bachelor | RICHARD Mathieu | 2009