1 / 40

Soutenance de TER Encadrant : Eric Languénou jeudi 2 juin 2005

Soutenance de TER Encadrant : Eric Languénou jeudi 2 juin 2005. SOAP. GOURAUD Benjamin, GUITTENY Fabrice, PERE Sabine Master 1 informatique. Introduction (1). Idée originale : mouvements de caméras souvent limités des Soap-opéras Outil simple et rapide pour créer des séquences animées

alexia
Download Presentation

Soutenance de TER Encadrant : Eric Languénou jeudi 2 juin 2005

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Soutenance de TEREncadrant : EricLanguénoujeudi 2 juin 2005 SOAP GOURAUD Benjamin, GUITTENY Fabrice, PERE Sabine Master 1 informatique

  2. Introduction (1) • Idée originale : mouvements de caméras souvent limités des Soap-opé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

  3. Introduction (2)

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

  5. 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

  6. I1- Travail demandé et existant • Langage utilisé : C++ • Travail demandé : moteur du logiciel • Non demandé : interface graphique • Existant : plusieurs applications

  7. I2- Schéma général Interface graphique Fichier XML Moteur deSOAP Fichier POV Rendu de la scène

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

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

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

  11. II1- 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> ...

  12. Synchronisation entre deux personnages uniquement Deux types de synchronisation disponibles « arrivée » « départ » II1- XML : les synchronisations <synchro> <synpt pers1="jeannot" numpt1="0" typsync1="arrivee" pers2="pierrot" numpt2="1" typsync2="arrivée"/> <synpt pers1="pierrot" numpt1="1" typsync1="depart" pers2="jeannot" numpt2="2" typsync2="départ"/> </synchro>

  13. II1- Parser XML : la caméra (1) • Exemple de spécification du mouvement de la caméra : • Uniquement des mouvements panoramiques

  14. II1- Parser XML : la caméra (2) ... <camera x="0.5" y="0.5"ratio=“1.33"> <pointcamera> <pos theta="10" phy="30"> <ouvx>0</ouvx> <ouvy>23</ouvy> </pos> <pos theta="50" phy="20"> <ouvx>10</ouvx> <ouvy>20</ouvy> </pos> </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> Position fixe Le ratio de l’image est fixe Points de passage : 2 angles et zoom (en fonction de l’ouverture en x et en y)

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

  16. II2- 2D en 3D : Solveur de Contraintes • Solveur utilisé : Realpaver • Principe : • 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 • En sortie : un fichier texte contenant les résultats

  17. II2- 2D en 3D : solveur de Contraintes, exemple de fichier de contraintes Constants p00_arriv=0, p00_p01=31.5636, p01_p02=3.79875, p02_p03=1.2, p03_p04=1.2; Variables p00_dep in [0,+oo[, p01_dep in [0,+oo[, p01_arriv in [0,+oo[, p02_dep in [0,+oo[, p02_arriv in [0,+oo[, p03_dep in [0,+oo[, p03_arriv in [0,+oo[, p04_arriv in [0,+oo[; Constraints p00_dep>=p00_arriv, p01_arriv=p00_dep+p00_p01, p00_dep=p00_arriv, p01_dep>=p01_arriv, p02_arriv=p01_dep+p01_p02, p01_dep=p01_arriv, p02_dep>=p02_arriv, p03_arriv=p02_dep+p02_p03, p02_dep=p02_arriv, p03_dep>=p03_arriv, p04_arriv=p03_dep+p03_p04, p03_dep=p03_arriv;

  18. II2- 2D en 3D : solveur de Contraintes, exemple de fichier de résultats RealPaver v. 0.4 (c) LINA 2004INITIAL BOX p00_dep in [0 , +oo[ p01_dep in [0 , +oo[ p01_arriv in [0 , +oo[ p02_dep in [0 , +oo[ p02_arriv in [0 , +oo[ p03_dep in [0 , +oo[ p03_arriv in [0 , +oo[ p04_arriv in [0 , +oo[ OUTER BOX 1 p00_dep = 0 p01_dep in [31.5636 , 31.5636] p01_arriv in [31.5636 , 31.5636] p02_dep in [35.36234999999999 , 35.36235000000001] p02_arriv in [35.36234999999999 , 35.36235000000001] p03_dep in [36.56234999999999 , 36.56235000000001] p03_arriv in [36.56234999999999 , 36.56235000000001] p04_arriv in [37.76234999999998 , 37.76235000000001] precision: 2.84e-14, elapsed time: 0 ms END OF SOLVING Property: reliable process (no solution is lost) Elapsed time: 0 ms

  19. II2- 2D en 3D : Interpolation avec les NURBS • But : • 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

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

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

  22. II2- 2D en 3D : Utilisation des Nurbs (1) • Exemple : Interpolation de la vitesse

  23. II2- 2D en 3D : Utilisation des Nurbs (2) • Autre interpolations : • Angle du corps • Angle de la tête • Angles de rotation de la caméra • Zoom

  24. II3- Passage de la 3D à l'animation • Calcul de la durée totale de la scène • Itération sur le temps • 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

  25. 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

  26. III1- Analyse du processus d’animation Story-board

  27. III1- Analyse : Du fichier XML à la 3D Fichier XML parser Soap2D Realpaver Soap Contraintes Soap3D Soap Interpolation Génération de fichiers POV

  28. III1) Analyse : Nurbs associées : Courbe de la vitesse du premier personnage point3 point5 point2 point4 point1 Accélération jusqu’à la vitesse de marche

  29. III1) 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, 0.0>location <0,0,0> angle 90 rotate <0,0,0> rotate <0,0,0>} sky_sphere { S_Cloud1 } light_source {<10,11,12> color rgb<255,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> }

  30. III1) Analyse : Animation

  31. III2) Exemple - 1 • Synchronisation deux personnages

  32. III2) Exemple - 2 • Synchronisation deux personnages

  33. III2) Exemple - 3 • Allures différentes

  34. III2) Exemple - 4 • Mouvements de caméra : panoramique horizontal

  35. III2) Exemple - 5 • Mouvements de caméra : panoramique vertical

  36. III2) Exemple - 6 • Plusieurs points de synchronisation

  37. Conclusion : futures extensions • Interface graphique ( OpenGL, Java3D, ...) • 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

  38. Flou de focale (1)

  39. Flou de focale (2)

  40. Des questions ?

More Related