Développement D'une Plateforme Web De Partage Et De .

4m ago
32 Views
0 Downloads
4.28 MB
65 Pages
Transcription

Développement d'une plateforme webde partage et de visualisation 3D temps-réel.Rapport de stage ST40 - A2011DESPOULAIN ThibautDépartement InformatiqueEntreprise KA-RA24 rue des Malteries67300 SCHILTIGHEIM, Francewww.ka-ra.frTuteur en entrepriseTRANG-CAO NgocSuiveur UTBMHAJJAM-EL-HASSANI Amir

RemerciementsA Raphaël Pierrat pour m'avoir accepté chez KA-RA,Ngoc Trang-Cao pour m'avoir guidé et donné de précieux conseils,Laurent, Kemal, Fabrice et Yoann pour m'avoir supporté pendant ces six mois.Au service des stages et à mon suiveur Amir Hajjam-El-Hassani pour leurs suivis.Merci.1

Ce rapport est mis à disposition selon les termes de la Licence Creative Commons Paternité - Pasd'Utilisation Commerciale 3.0 non transposé.Thibaut Despoulain.2

Sommaire1. Préliminaires . 111.1. Rédaction d'un cahier des charges. . 11Fonctionnalités définies . 11Difficultés rencontrées . 111.2. Recherches préliminaires sur les technologies qui seront utilisées. . 12Technologies pour la plateforme web (front-end/back-end) . 12Technologies pour le moteur 3D . 131.3. Définition des entités de base et création du graph de base de données correspondant. . 13Utilisateur . 13Projet . 14Tag . 142. Prototypage . 152.1. Mise en place de l'environnement de développement . 15Serveur local . 15Versionning. 15Suivi de développement . 15Développement . 15Outils de test . 16Design, wireframing, intégration. 16Documentation, schématisation . 162.2. Création de la base de données. . 172.3. Ajout des informations de la base de donnée dans Orion . 172.4. Génération des modèles Orion . 172.5. Prototypage d'une interface utilisateur pour l'inscription et la gestion des utilisateurs. . 192.6. "Proof Of Concept" du visualisateur 3D et de son intégration. . 19Wrapper jQuery pour le moteur 3D. . 20Module d'affichage d'un projet 3D . 20Difficultés rencontrées . 202.7. Résultat . 213. Développement de la plateforme - Préparation de l'environnement. 233.1. Wireframes de l'interface utilisateur et des interactions finales. 233.2. Définition d'un schéma structurel de la plateforme et de ses composants. . 233.3. Recherche puis choix d'un serveur. . 233.4. Installation du serveur et configuration du système. . 23Installation du package LAMP . 24Installation des technologies manquantes . 24Installation du serveur SMTP . 24Installation du serveur FTP . 253

Installation d'outils d'administration . 25Mise en place d'une sauvegarde automatique de la base de donnée . 25Difficultés rencontrées . 253.5. Résultat . 264. Développement de la plateforme - Design du thème graphique . 274.1. Création et découpe des plaquettes du design sous Photoshop. . 274.2. Intégration HTML5/CSS3 de la maquette. . 284.3. Portage de la maquette vers un template Smarty3. . 285. Développement de la plateforme - Création des modules . 305.1. Développement du module de gestion des utilisateurs. . 30Partie publique . 30Administration . 315.2. Développement du module de gestion des projets. . 32Partie publique . 32Administration . 355.3. Développement du module de recherche. . 356. Développement de la plateforme - Intégration du moteur 3D . 376.1. Chargement des classes requises . 376.2. Création du markup dynamique . 376.3. Initialisation du moteur . 377. Développement de la plateforme - Interface de l'éditeur 3D . 387.1. Design et intégration de l'interface de l'éditeur. 387.2. Développement et intégration de plugins jQuery pour l'UI de l'éditeur . 38Tree . 38Treeview . 38jScrollPane . 39Slider . 39Timeslider . 39MiniColors . 407.3. Difficultés rencontrées . 40Compatibilité inter-navigateurs . 40Bugs de navigateurs . 418. Développement de la plateforme - Fonctionnalités de l'éditeur . 428.1. Développement d'un explorateur de textures pour l'éditeur 3D . 42Difficultés rencontrées . 428.2. Développement des panneaux d'édition de matériau. . 428.3. Développement des panneaux de réglages des effets du moteur. 434

9. Développement de la plateforme - Script de sauvegarde 3D . 449.1. Principe . 449.2. Avantages . 449.3. Inconvénients . 449.4. Implémentation . 44Génération du fichier de différences . 44Sauvegarde du fichier de différences . 45Application des différences au fichier 3D . 4510. Amélioration du moteur 3D . 4710.1. Développement d'un système de picking au shader. . 47Principe . 47Aperçu du code . 4810.2. Développement d'un shader de rendu de type sketch. . 48Filtre Laplacien . 48Implémentation des passes de rendu . 49Extension . 5110.3. Développement d'un shader de rendu Cell-shading. . 52Principe . 52Algorithme de cell-shading . 5310.4. Développement d'un shader de rendu Clay. . 5410.5. Amélioration du SSAO via une passe de filtre moyen. . 5410.6. Développement d'un algorithme de génération de Scenegraph. . 5610.7. Optimisation du Framework WebGL (SpiderGL). .