slide show powiter
DESCRIPTION
Presentation Powiter Concours Boost your code 2013TRANSCRIPT
PowiterAlexandre Gauthier-Foichat
Boost your code 2013
31 mai 2013
Alexandre Gauthier-Foichat 1/35
Plan
1 Introduction1 Qu’est-ce que Powiter2 Portée3 Philosophie
2 Développement1 Le noyau du logiciel2 Kit de développement
3 Organisation4 Conclusion
Alexandre Gauthier-Foichat 2/35
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
Qu’est-ce que le compositing ?
Image avant matting Elements à ajouter
Image retouchée
Alexandre Gauthier-Foichat 4/35
Domaines d’application
Le cinéma La publicité
Le divertissementAlexandre Gauthier-Foichat 5/35
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
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
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
Communauté• Communauté similaire à celle du logiciel Blender
• Blender : multitâche mais peu performant• Une interface trop complexe
Alexandre Gauthier-Foichat 7/35
Communauté• Communauté similaire à celle du logiciel Blender• Blender : multitâche mais peu performant
• Une interface trop complexe
Alexandre Gauthier-Foichat 7/35
Communauté• Communauté similaire à celle du logiciel Blender• Blender : multitâche mais peu performant• Une interface trop complexe
Alexandre Gauthier-Foichat 7/35
Philosophie: accessible
• Fournir une alternative gratuite
Nuke: 4000 euros After Effects: 1500euros
Alexandre Gauthier-Foichat 8/35
Philosophie: accessible
• Fournir une alternative gratuite
Nuke: 4000 euros After Effects: 1500euros
Alexandre Gauthier-Foichat 8/35
Philosophie: créatif
• Stimuler la créativité avec une interface simple
• Interface similaire aux autres logiciels du marché
Alexandre Gauthier-Foichat 9/35
Philosophie: créatif
• Stimuler la créativité avec une interface simple• Interface similaire aux autres logiciels du marché
Alexandre Gauthier-Foichat 9/35
Philosophie: communautaire• Objectif : permettre à quiconque de programmer avec le
SDK
−→ Intérêt: profiter de Powiter pour son proprealgorithme.
Calcul de points d’intêrets pour faire du suivi demouvements
• L’aspect communautaire sera l’atout principal −→ plusd’outils pour l’utilisateur
Alexandre Gauthier-Foichat 10/35
Philosophie: communautaire• Objectif : permettre à quiconque de programmer avec le
SDK−→ Intérêt: profiter de Powiter pour son proprealgorithme.
Calcul de points d’intêrets pour faire du suivi demouvements
• L’aspect communautaire sera l’atout principal −→ plusd’outils pour l’utilisateur
Alexandre Gauthier-Foichat 10/35
Philosophie: communautaire• Objectif : permettre à quiconque de programmer avec le
SDK−→ Intérêt: profiter de Powiter pour son proprealgorithme.
Calcul de points d’intêrets pour faire du suivi demouvements
• L’aspect communautaire sera l’atout principal −→ plusd’outils pour l’utilisateur
Alexandre Gauthier-Foichat 10/35
Philosophie: communautaire• Objectif : permettre à quiconque de programmer avec le
SDK−→ Intérêt: profiter de Powiter pour son proprealgorithme.
Calcul de points d’intêrets pour faire du suivi demouvements
• L’aspect communautaire sera l’atout principal −→ plusd’outils pour l’utilisateur
Alexandre Gauthier-Foichat 10/35
Licence
• Le coeur du logiciel sera sous licence GPL• Le SDK sera sous licence LGPL−→ Une sociéte de post-production pourra vendre sestechnologies
Licence du noyau Licence du SDK
Alexandre Gauthier-Foichat 11/35
Plan
1 Introduction1 Qu’est-ce que Powiter2 Portée3 Philosophie
2 Développement1 Le noyau du logiciel2 Kit de développement
3 Organisation4 Conclusion
Alexandre Gauthier-Foichat 12/35
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
Un exemple de graphe
Alexandre Gauthier-Foichat 14/35
Un exemple de graphe(2)
Alexandre Gauthier-Foichat 15/35
Un exemple de graphe(3)
Alexandre Gauthier-Foichat 16/35
Un exemple de graphe(4)
Alexandre Gauthier-Foichat 17/35
Un exemple de graphe(5)
Image tirée du film: La planète des singes: les origines
Alexandre Gauthier-Foichat 18/35
Avantages du graphe
Simple flougaussien
• 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
Avantages du graphe
Simple flougaussien
• 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
Avantages du graphe
Simple flougaussien
• 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
Graphes templates• Création de graphes "templates"
Conversion d’un graphe en un seul noeud
Alexandre Gauthier-Foichat 20/35
Graphes templates• Création de graphes "templates"
Conversion d’un graphe en un seul noeud
Alexandre Gauthier-Foichat 20/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
• Objectif −→ être au moins aussi performant que leslogiciels propriétaires
Alexandre Gauthier-Foichat 21/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 enCuda/OpenCL
• Objectif −→ être au moins aussi performant que leslogiciels propriétaires
Alexandre Gauthier-Foichat 21/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
• Objectif −→ être au moins aussi performant que leslogiciels propriétaires
Alexandre Gauthier-Foichat 21/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
• Objectif −→ être au moins aussi performant que leslogiciels propriétaires
Alexandre Gauthier-Foichat 21/35
Viewer: Retour utilisateur
Interface pensée pour l’utilisateur
Alexandre Gauthier-Foichat 22/35
Viewer: Retour utilisateur(2)
Déplacement et zoom Couleurs au pixel près
Alexandre Gauthier-Foichat 23/35
Performances: Un viewer real-time
• Une très grande partie du développement est axée surl’optimisation
• Utilisation en plus du matériel graphique
Alexandre Gauthier-Foichat 24/35
Performances: Un viewer real-time
• Une très grande partie du développement est axée surl’optimisation
• Utilisation en plus du matériel graphique
Alexandre Gauthier-Foichat 24/35
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 graphesans interface
Alexandre Gauthier-Foichat 25/35
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 graphesans interface
Alexandre Gauthier-Foichat 25/35
Plan
1 Introduction1 Qu’est-ce que Powiter2 Portée3 Philosophie
2 Développement1 Le noyau du logiciel2 Kit de développement
3 Organisation4 Conclusion
Alexandre Gauthier-Foichat 26/35
SDK: Scripts
• Graphe configurable en scripts Python
Script pour changer le format : convert.py
Utilisation en ligne de commande
Alexandre Gauthier-Foichat 27/35
SDK: Scripts
• Graphe configurable en scripts Python
Script pour changer le format : convert.py
Utilisation en ligne de commande
Alexandre Gauthier-Foichat 27/35
SDK: Scripts
• Graphe configurable en scripts Python
Script pour changer le format : convert.py
Utilisation en ligne de commande
Alexandre Gauthier-Foichat 27/35
Le kit de développement
• Interface C++ simple et documentée permettant de créerde nouveaux noeuds.
Alexandre Gauthier-Foichat 28/35
SDK: Compatibilité avec les autreslogiciels
• Powiter implémente OpenFX−→ standard d’interchange pour les effetsspéciaux.
• Fichiers de géométrie en .fbx (format deMaya de Autodesk)
• Dans le futur, Powiter proposera une APIpour une technologie de frame-server
Alexandre Gauthier-Foichat 29/35
SDK: Compatibilité avec les autreslogiciels
• Powiter implémente OpenFX−→ standard d’interchange pour les effetsspéciaux.
• Fichiers de géométrie en .fbx (format deMaya de Autodesk)
• Dans le futur, Powiter proposera une APIpour une technologie de frame-server
Alexandre Gauthier-Foichat 29/35
SDK: Compatibilité avec les autreslogiciels
• Powiter implémente OpenFX−→ standard d’interchange pour les effetsspéciaux.
• Fichiers de géométrie en .fbx (format deMaya de Autodesk)
• Dans le futur, Powiter proposera une APIpour une technologie de frame-server
Alexandre Gauthier-Foichat 29/35
Plan
1 Introduction1 Qu’est-ce que Powiter2 Portée3 Philosophie
2 Développement1 Le noyau du logiciel2 Kit de développement
3 Organisation4 Conclusion
Alexandre Gauthier-Foichat 30/35
Travail réalisé
• Interface utilisateur
• Moteur d’éxécution de graphe• Viewer• Moteur de cache
Alexandre Gauthier-Foichat 31/35
Travail réalisé
• Interface utilisateur• Moteur d’éxécution de graphe
• Viewer• Moteur de cache
Alexandre Gauthier-Foichat 31/35
Travail réalisé
• Interface utilisateur• Moteur d’éxécution de graphe• Viewer
• Moteur de cache
Alexandre Gauthier-Foichat 31/35
Travail réalisé
• Interface utilisateur• Moteur d’éxécution de graphe• Viewer• Moteur de cache
Alexandre Gauthier-Foichat 31/35
Gestion des sources
• Le noyau possède un dépôt github réservé auxdéveloppeurs expérimentés
• Plug-ins séparés du noyau avec un système automatiquede gestion
• Certains plug-ins incorporés de base au noyau
Alexandre Gauthier-Foichat 32/35
Gestion des sources
• Le noyau possède un dépôt github réservé auxdéveloppeurs expérimentés
• Plug-ins séparés du noyau avec un système automatiquede gestion
• Certains plug-ins incorporés de base au noyau
Alexandre Gauthier-Foichat 32/35
Gestion des sources
• Le noyau possède un dépôt github réservé auxdéveloppeurs expérimentés
• Plug-ins séparés du noyau avec un système automatiquede gestion
• Certains plug-ins incorporés de base au noyau
Alexandre Gauthier-Foichat 32/35
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
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
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
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
Questions
• Merci de votre attention !• Des questions?
Alexandre Gauthier-Foichat 35/35