2. Plan
1 Introduction
1 Qu’est-ce que Powiter
2 Portée
3 Philosophie
2 Développement
1 Le noyau du logiciel
2 Kit de développement
3 Organisation
4 Conclusion
Alexandre Gauthier-Foichat 2/35
3. Qu’est-ce que Powiter?
• Logiciel de compositing et de traitement vidéo
• Open-source et portable (Windows, Linux, OSX)
Alexandre Gauthier-Foichat 3/35
4. Qu’est-ce que le compositing ?
Image avant matting Elements à ajouter
Image retouchée
Alexandre Gauthier-Foichat 4/35
6. Portée : pour qui ?
• Éducation, recherche , industrie...
Alexandre Gauthier-Foichat 6/35
7. Portée : pour qui ?
• Éducation, recherche , industrie...
• Utilisable pour des applications commerciales ou non
Alexandre Gauthier-Foichat 6/35
8. Portée : pour qui ?
• Éducation, recherche , industrie...
• Utilisable pour des applications commerciales ou non
−→ Offrir la possibilité à tout le monde de créer des films
Alexandre Gauthier-Foichat 6/35
10. Communauté
• Communauté similaire à celle du logiciel Blender
• Blender : multitâche mais peu performant
Alexandre Gauthier-Foichat 7/35
11. Communauté
• Communauté similaire à celle du logiciel Blender
• Blender : multitâche mais peu performant
• Une interface trop complexe
Alexandre Gauthier-Foichat 7/35
15. Philosophie: créatif
• Stimuler la créativité avec une interface simple
• Interface similaire aux autres logiciels du marché
Alexandre Gauthier-Foichat 9/35
17. Philosophie: communautaire
• Objectif : permettre à quiconque de programmer avec le
SDK−→ Intérêt: profiter de Powiter pour son propre
algorithme.
Alexandre Gauthier-Foichat 10/35
18. Philosophie: communautaire
• Objectif : permettre à quiconque de programmer avec le
SDK−→ Intérêt: profiter de Powiter pour son propre
algorithme.
Calcul de points d’intêrets pour faire du suivi de
mouvements
Alexandre Gauthier-Foichat 10/35
19. Philosophie: communautaire
• Objectif : permettre à quiconque de programmer avec le
SDK−→ Intérêt: profiter de Powiter pour son propre
algorithme.
Calcul de points d’intêrets pour faire du suivi de
mouvements
• L’aspect communautaire sera l’atout principal −→ plus
d’outils pour l’utilisateur
Alexandre Gauthier-Foichat 10/35
20. Licence
• Le coeur du logiciel sera sous licence GPL
• Le SDK sera sous licence LGPL
−→ Une sociéte de post-production pourra vendre ses
technologies
Licence du noyau Licence du SDK
Alexandre Gauthier-Foichat 11/35
21. Plan
1 Introduction
1 Qu’est-ce que Powiter
2 Portée
3 Philosophie
2 Développement
1 Le noyau du logiciel
2 Kit de développement
3 Organisation
4 Conclusion
Alexandre Gauthier-Foichat 12/35
22. Une structure nodale
• Outil de travail principal : le DAG (direct acyclic graph)
• Chaque noeud représente une modification de l’image
Un graphe complexe
Alexandre Gauthier-Foichat 13/35
23. Un exemple de graphe
Alexandre Gauthier-Foichat 14/35
24. Un exemple de graphe(2)
Alexandre Gauthier-Foichat 15/35
25. Un exemple de graphe(3)
Alexandre Gauthier-Foichat 16/35
26. Un exemple de graphe(4)
Alexandre Gauthier-Foichat 17/35
27. Un exemple de graphe(5)
Image tirée du film: La planète des singes: les origines
Alexandre Gauthier-Foichat 18/35
28. Avantages du graphe
Simple flou
gaussien
• Retour utilisateur très visuel et intuitif
Alexandre Gauthier-Foichat 19/35
29. Avantages du graphe
Simple flou
gaussien
• Retour utilisateur très visuel et intuitif
• Réutilisation de résultats intermédiaires
Alexandre Gauthier-Foichat 19/35
30. Avantages du graphe
Simple flou
gaussien
• Retour utilisateur très visuel et intuitif
• Réutilisation de résultats intermédiaires
• Il est très facile d’éffectuer des modifications au graphe
Alexandre Gauthier-Foichat 19/35
32. Graphes templates
• Création de graphes "templates"
Conversion d’un graphe en un seul noeud
Alexandre Gauthier-Foichat 20/35
33. Performances du graphe
• Besoin → changer le graphe ne doit pas provoquer de délai
Alexandre Gauthier-Foichat 21/35
34. Performances du graphe
• Besoin → changer le graphe ne doit pas provoquer de délai
• Chaque noeud stocke ses résultats
Alexandre Gauthier-Foichat 21/35
35. Performances du graphe
• Besoin → changer le graphe ne doit pas provoquer de délai
• Chaque noeud stocke ses résultats
• Certains noeuds verront leur implémentation faite en
Cuda/OpenCL
Alexandre Gauthier-Foichat 21/35
36. Performances du graphe
• Besoin → changer le graphe ne doit pas provoquer de délai
• Chaque noeud stocke ses résultats
• Certains noeuds verront leur implémentation faite en
Cuda/OpenCL
• Objectif −→ être au moins aussi performant que les
logiciels propriétaires
Alexandre Gauthier-Foichat 21/35
39. Performances: Un viewer real-time
• Une très grande partie du développement est axée sur
l’optimisation
Alexandre Gauthier-Foichat 24/35
40. Performances: Un viewer real-time
• Une très grande partie du développement est axée sur
l’optimisation
• Utilisation en plus du matériel graphique
Alexandre Gauthier-Foichat 24/35
41. Propriétés des noeuds
• Le dock à droite s’occupe de paramétrer les noeuds
Propriétés du noeud Reader
Alexandre Gauthier-Foichat 25/35
42. Propriétés des noeuds
• Le dock à droite s’occupe de paramétrer les noeuds
Propriétés du noeud Reader
• Un système de script permettra de configurer le graphe
sans interface
Alexandre Gauthier-Foichat 25/35
43. Plan
1 Introduction
1 Qu’est-ce que Powiter
2 Portée
3 Philosophie
2 Développement
1 Le noyau du logiciel
2 Kit de développement
3 Organisation
4 Conclusion
Alexandre Gauthier-Foichat 26/35
45. SDK: Scripts
• Graphe configurable en scripts Python
Script pour changer le format : convert.py
Alexandre Gauthier-Foichat 27/35
46. SDK: Scripts
• Graphe configurable en scripts Python
Script pour changer le format : convert.py
Utilisation en ligne de commande
Alexandre Gauthier-Foichat 27/35
47. Le kit de développement
• Interface C++ simple et documentée permettant de créer
de nouveaux noeuds.
Alexandre Gauthier-Foichat 28/35
48. SDK: Compatibilité avec les autres
logiciels
• Powiter implémente OpenFX
−→ standard d’interchange pour les effets
spéciaux.
Alexandre Gauthier-Foichat 29/35
49. SDK: Compatibilité avec les autres
logiciels
• Powiter implémente OpenFX
−→ standard d’interchange pour les effets
spéciaux.
• Fichiers de géométrie en .fbx (format de
Maya de Autodesk)
Alexandre Gauthier-Foichat 29/35
50. SDK: Compatibilité avec les autres
logiciels
• Powiter implémente OpenFX
−→ standard d’interchange pour les effets
spéciaux.
• Fichiers de géométrie en .fbx (format de
Maya de Autodesk)
• Dans le futur, Powiter proposera une API
pour une technologie de frame-server
Alexandre Gauthier-Foichat 29/35
51. Plan
1 Introduction
1 Qu’est-ce que Powiter
2 Portée
3 Philosophie
2 Développement
1 Le noyau du logiciel
2 Kit de développement
3 Organisation
4 Conclusion
Alexandre Gauthier-Foichat 30/35
54. Travail réalisé
• Interface utilisateur
• Moteur d’éxécution de graphe
• Viewer
Alexandre Gauthier-Foichat 31/35
55. Travail réalisé
• Interface utilisateur
• Moteur d’éxécution de graphe
• Viewer
• Moteur de cache
Alexandre Gauthier-Foichat 31/35
56. Gestion des sources
• Le noyau possède un dépôt github réservé aux
développeurs expérimentés
Alexandre Gauthier-Foichat 32/35
57. Gestion des sources
• Le noyau possède un dépôt github réservé aux
développeurs expérimentés
• Plug-ins séparés du noyau avec un système automatique
de gestion
Alexandre Gauthier-Foichat 32/35
58. Gestion des sources
• Le noyau possède un dépôt github réservé aux
développeurs expérimentés
• Plug-ins séparés du noyau avec un système automatique
de gestion
• Certains plug-ins incorporés de base au noyau
Alexandre Gauthier-Foichat 32/35
61. Documentation
• Documentation utilisateur: manuel et tutoriels vidéos
• Le noyau comportera une documentation interne.
• Documentation SDK: guide de développement +
documentation automatique
Une page web pour le SDK
Alexandre Gauthier-Foichat 33/35
62. Conclusion
• Un projet ambitieux qui a commencé en juin 2012
• Le cinéma et les effets spéciaux sont une grande passion
pour moi
• Des centaines d’heures passées dessus
• Un remerciement particulier à Frédéric Devernay (équipe
prima Inria) qui continue de m’aider dans ce projet
Alexandre Gauthier-Foichat 34/35
63. Questions
• Merci de votre attention !
• Des questions?
Alexandre Gauthier-Foichat 35/35