Slide show Powiter

Preview:

DESCRIPTION

Presentation Powiter Concours Boost your code 2013

Citation preview

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