Soutenance de TER Encadrant Eric Langunou jeudi 2

  • Slides: 40
Download presentation
Soutenance de TER Encadrant : Eric Languénou jeudi 2 juin 2005 GOURAUD Benjamin, GUITTENY

Soutenance de TER Encadrant : Eric Languénou jeudi 2 juin 2005 GOURAUD Benjamin, GUITTENY Fabrice, PERE Sabine Master 1 informatique SOAP

Introduction (1) Idée originale : mouvements de caméras souvent limités des Soapopéras ¡ Outil

Introduction (1) Idée originale : mouvements de caméras souvent limités des Soapopéras ¡ Outil simple et rapide pour créer des séquences animées ¡ S'inspire des storyboards de films pour décrire une scène ¡ Scènes réalistes du point de vue des mouvements des personnages et de caméra ¡

Introduction (2)

Introduction (2)

Plan Général I- Présentation du travail demandé II- Principes de fonctionnement III- Exemples et

Plan Général I- Présentation du travail demandé II- Principes de fonctionnement III- Exemples et analyse de séquences animées

Plan Général I- Présentation du travail demandé 1 - Travail demandé et existant 2

Plan Général I- Présentation du travail demandé 1 - Travail demandé et existant 2 - Schéma général de Soap 3 - Organisation et découpage du travail II- Principes de fonctionnement III- Exemples et analyse de séquences animées

I 1 - Travail demandé et existant ¡ Langage utilisé : C++ ¡ Travail

I 1 - Travail demandé et existant ¡ Langage utilisé : C++ ¡ Travail demandé : moteur du logiciel ¡ Non demandé : interface graphique ¡ Existant : plusieurs applications

I 2 - Schéma général Interface graphique Fichier XML Moteur de SOAP Fichier POV

I 2 - Schéma général Interface graphique Fichier XML Moteur de SOAP Fichier POV Rendu de la scène

I 3 - Organisation et découpage du travail ¡ Définition des spécifications du fichier

I 3 - Organisation et découpage du travail ¡ Définition des spécifications du fichier XML et réalisation d'un parser l ¡ ¡ Intégration des données dans la structure Soap 2 D Exportation vers la structure Soap 3 D l Calculs de projections vers la 3 D l Utilisation d'un solveur de contraintes l Utilisation de NURBS Génération de fichiers POV l Interprétation de la structure 3 D l Calcul des images l Création de l'animation

Plan Général I- Présentation du travail demandé II- Principes de fonctionnement 1 - Parser

Plan Général I- Présentation du travail demandé II- Principes de fonctionnement 1 - Parser XML 2 - Passage de la 2 D à la 3 D 3 - Passage de la 3 D à l'animation III- Exemples et analyse de séquences animées

II 1 - Parser XML : la scène ¡ Regroupe l'ensemble des informations <?

II 1 - Parser XML : la scène ¡ Regroupe l'ensemble des informations <? xml version="1. 0" encoding="ISO-8859 -1"? > <scene> <nom>scene 1</nom> <ouverturex>12</ouverturex> <ouverturey>33</ouverturey> <plan> <a>12</a> <b>15</b> <c>18</c> <d>0</d> </plan> . . .

II 1 - XML : les personnages <personnages> <perso nom="jeannot" taille="1" couleur="255 50 100">

II 1 - XML : les personnages <personnages> <perso nom="jeannot" taille="1" couleur="255 50 100"> <pointspassages> <pt x="0" y="0" r="0. 02"> <deplacement> <allure>marche</allure> <tete>10</tete> <corps>30</corps> </deplacement> </pt> <pt x=“ 0. 5" y=“ 0. 5" r=“ 0. 08"> <deplacement> <allure>course</allure> <tete>15</tete> <corps>15</corps> </deplacement> </pointspassages> . . .

II 1 - XML : les synchronisations ¡ Synchronisation entre deux personnages uniquement ¡

II 1 - XML : les synchronisations ¡ Synchronisation entre deux personnages uniquement ¡ Deux types de synchronisation disponibles l « arrivée » l « départ » <synchro> <synpt pers 1="jeannot" numpt 1="0" typsync 1="arrivee" pers 2="pierrot" numpt 2="1" typsync 2="arrivée"/> <synpt pers 1="pierrot" numpt 1="1" typsync 1="depart" pers 2="jeannot" numpt 2="2" typsync 2="départ"/> </synchro>

II 1 - Parser XML : la caméra (1) ¡ ¡ Exemple de spécification

II 1 - Parser XML : la caméra (1) ¡ ¡ Exemple de spécification du mouvement de la caméra : Uniquement des mouvements panoramiques

II 1 - Parser XML : la caméra (2). . . Position fixe <camera

II 1 - Parser XML : la caméra (2). . . Position fixe <camera x="0. 5" y="0. 5" ratio=“ 1. 33"> <pointcamera> <pos theta="10" phy="30"> Le ratio de l’image est fixe <ouvx>0</ouvx> <ouvy>23</ouvy> </pos> <pos theta="50" phy="20"> Points de passage : 2 <ouvx>10</ouvx> angles et zoom (en <ouvy>20</ouvy> fonction de l’ouverture </pos> en x et en y) </pointcamera> <synchrocam> <syncampt pers="jeannot" poscam="2" pospers="1" typsync="arrivée"/> <syncampt pers="pierrot" poscam="4" pospers="4" typsync="départ"/> </synchrocam> </camera> </scene>

II 2 - Passage de la 2 D à la 3 D ¡ Calcul

II 2 - Passage de la 2 D à la 3 D ¡ Calcul du point 3 D (X, Y, Z) à partir du point 2 D (x, y) Rayon de la sphère englobante du personnage Rayon du disque englobant du point de passage Ouverture horizontale Ouverture verticale

II 2 - 2 D en 3 D : Solveur de Contraintes Solveur utilisé

II 2 - 2 D en 3 D : Solveur de Contraintes Solveur utilisé : Realpaver ¡ Principe : ¡ l En entrée : un fichier texte contenant le CSP (système de contraintes) Les constantes ¡ Les variables et leur domaine ¡ Le système de contraintes ¡ l En sortie : un fichier texte contenant les résultats

II 2 - 2 D en 3 D : solveur de Contraintes, exemple de

II 2 - 2 D en 3 D : solveur de Contraintes, exemple de fichier de contraintes Constants p 00_arriv=0, p 00_p 01=31. 5636, p 01_p 02=3. 79875, p 02_p 03=1. 2, p 03_p 04=1. 2; Variables p 00_dep in [0, +oo[, p 01_arriv in [0, +oo[, p 02_dep in [0, +oo[, p 02_arriv in [0, +oo[, p 03_dep in [0, +oo[, p 03_arriv in [0, +oo[, p 04_arriv in [0, +oo[; Constraints p 00_dep>=p 00_arriv, p 01_arriv=p 00_dep+p 00_p 01, p 00_dep=p 00_arriv, p 01_dep>=p 01_arriv, p 02_arriv=p 01_dep+p 01_p 02, p 01_dep=p 01_arriv, p 02_dep>=p 02_arriv, p 03_arriv=p 02_dep+p 02_p 03, p 02_dep=p 02_arriv, p 03_dep>=p 03_arriv, p 04_arriv=p 03_dep+p 03_p 04, p 03_dep=p 03_arriv;

II 2 - 2 D en 3 D : solveur de Contraintes, exemple de

II 2 - 2 D en 3 D : solveur de Contraintes, exemple de fichier de résultats Real. Paver v. 0. 4 (c) LINA 2004 INITIAL BOX p 00_dep in [0 , +oo[ p 01_arriv in [0 , +oo[ p 02_dep in [0 , +oo[ p 02_arriv in [0 , +oo[ p 03_dep in [0 , +oo[ p 03_arriv in [0 , +oo[ p 04_arriv in [0 , +oo[ OUTER BOX 1 p 00_dep = 0 p 01_dep in [31. 5636 , 31. 5636] p 01_arriv in [31. 5636 , 31. 5636] p 02_dep in [35. 3623499999 , 35. 3623500001] p 02_arriv in [35. 3623499999 , 35. 3623500001] p 03_dep in [36. 5623499999 , 36. 5623500001] p 03_arriv in [36. 5623499999 , 36. 5623500001] p 04_arriv in [37. 7623499998 , 37. 7623500001] precision: 2. 84 e-14, elapsed time: 0 ms END OF SOLVING Property: reliable process (no solution is lost) Elapsed time: 0 ms

II 2 - 2 D en 3 D : Interpolation avec les NURBS ¡

II 2 - 2 D en 3 D : Interpolation avec les NURBS ¡ But : l l rendre les trajectoires des personnages plus élégantes, fluides et réalistes Prendre en compte les accélérations et décélérations lors d'un changement d'allure Adoucir les rotations du corps et de la tête Accentuer la fluidité des mouvements de caméra et du zoom

II 2 - 2 D en 3 D : Linéaire vs Nurbs l Utilisation

II 2 - 2 D en 3 D : Linéaire vs Nurbs l Utilisation des points clés Nurbs l Méthode de globale interpolation Linéaire l Trajectoire moins saccadée

II 2 - 2 D en 3 D : Interpolation ¡ Réalisée à la

II 2 - 2 D en 3 D : Interpolation ¡ Réalisée à la manière d'une boîte noire l l Autonome du reste du logiciel Soap Réutilisation possible pour d'autres applications

II 2 - 2 D en 3 D : Utilisation des Nurbs (1) ¡

II 2 - 2 D en 3 D : Utilisation des Nurbs (1) ¡ Exemple : Interpolation de la vitesse

II 2 - 2 D en 3 D : Utilisation des Nurbs (2) ¡

II 2 - 2 D en 3 D : Utilisation des Nurbs (2) ¡ Autre interpolations : l l Angle du corps Angle de la tête Angles de rotation de la caméra Zoom

II 3 - Passage de la 3 D à l'animation ¡ ¡ Calcul de

II 3 - Passage de la 3 D à l'animation ¡ ¡ Calcul de la durée totale de la scène Itération sur le temps l l ¡ ¡ Toutes les n secondes, génération d’un fichier POV Récupération des informations à l’aide de l’interpolation POV vers PNG (POV-Ray) Animation

Plan Général I- Présentation du travail demandé II- Principes de fonctionnement III- Exemples et

Plan Général I- Présentation du travail demandé II- Principes de fonctionnement III- Exemples et analyse de séquences animées 1) Analyse du processus d’animation 2) Exemples de séquences

III 1 - Analyse du processus d’animation Story-board

III 1 - Analyse du processus d’animation Story-board

III 1 - Analyse : Du fichier XML à la 3 D Fichier XML

III 1 - Analyse : Du fichier XML à la 3 D Fichier XML parser Realpaver Soap 2 D Soap Contraintes Soap 3 D Soap Interpolation Génération de fichiers POV

III 1) Analyse : Nurbs associées : Courbe de la vitesse du premier personnage

III 1) Analyse : Nurbs associées : Courbe de la vitesse du premier personnage point 3 point 2 point 1 Accélération jusqu’à la vitesse de marche point 5 point 4

III 1) Analyse : fichiers POV-Ray #version 3. 1 global_settings { assumed_gamma 2. 2

III 1) Analyse : fichiers POV-Ray #version 3. 1 global_settings { assumed_gamma 2. 2 } #include "colors. inc" #include "textures. inc" #include "skies. inc" #include "bonhomme. inc" camera {up <0. 0, 1. 0, 0. 0> right <1. 33, 0. 0>location <0, 0, 0> angle 90 rotate <0, 0, 0>} sky_sphere { S_Cloud 1 } light_source {<10, 11, 12> color rgb<255, 255>/255} plane { <0, 1, 0>, -30 texture { Yellow_Pine scale 100 } } #declare bob=dessine_bonhomme( rgb<255, 50, 100>/255, 10. 5715); object { bob scale 0. 5 rotate <0, 10, 0> translate <-37. 7578, -30, 108. 046> } #declare franz=dessine_bonhomme( rgb<70, 234, 255>/255, -5. 94179); object { franz scale 0. 5 rotate <0, -9, 0> translate <5. 55556, -30, 15. 8976> }

III 1) Analyse : Animation

III 1) Analyse : Animation

III 2) Exemple - 1 ¡ Synchronisation deux personnages

III 2) Exemple - 1 ¡ Synchronisation deux personnages

III 2) Exemple - 2 ¡ Synchronisation deux personnages

III 2) Exemple - 2 ¡ Synchronisation deux personnages

III 2) Exemple - 3 ¡ Allures différentes

III 2) Exemple - 3 ¡ Allures différentes

III 2) Exemple - 4 ¡ Mouvements de caméra : panoramique horizontal

III 2) Exemple - 4 ¡ Mouvements de caméra : panoramique horizontal

III 2) Exemple - 5 ¡ Mouvements de caméra : panoramique vertical

III 2) Exemple - 5 ¡ Mouvements de caméra : panoramique vertical

III 2) Exemple - 6 ¡ Plusieurs points de synchronisation

III 2) Exemple - 6 ¡ Plusieurs points de synchronisation

Conclusion : futures extensions Interface graphique ( Open. GL, Java 3 D, . .

Conclusion : futures extensions Interface graphique ( Open. GL, Java 3 D, . . . ) ¡ Mouvements caméras plus complexes comme les travellings ¡ Doublage sonore ¡ Étoffer la scène avec des objets (problème de collisions) ¡ Effets spéciaux, flou de focale ¡

Flou de focale (1)

Flou de focale (1)

Flou de focale (2)

Flou de focale (2)

Des questions ?

Des questions ?