63
Powiter Alexandre Gauthier-Foichat Boost your code 2013 31 mai 2013 Alexandre Gauthier-Foichat 1/35

Slide show Powiter

Embed Size (px)

DESCRIPTION

Presentation Powiter Concours Boost your code 2013

Citation preview

Page 1: Slide show Powiter

PowiterAlexandre Gauthier-Foichat

Boost your code 2013

31 mai 2013

Alexandre Gauthier-Foichat 1/35

Page 2: Slide show Powiter

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

Page 3: Slide show Powiter

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

Page 4: Slide show Powiter

Qu’est-ce que le compositing ?

Image avant matting Elements à ajouter

Image retouchée

Alexandre Gauthier-Foichat 4/35

Page 5: Slide show Powiter

Domaines d’application

Le cinéma La publicité

Le divertissementAlexandre Gauthier-Foichat 5/35

Page 6: Slide show Powiter

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

Page 7: Slide show Powiter

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

Page 8: Slide show Powiter

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

Page 9: Slide show Powiter

Communauté• Communauté similaire à celle du logiciel Blender

• Blender : multitâche mais peu performant• Une interface trop complexe

Alexandre Gauthier-Foichat 7/35

Page 10: Slide show Powiter

Communauté• Communauté similaire à celle du logiciel Blender• Blender : multitâche mais peu performant

• Une interface trop complexe

Alexandre Gauthier-Foichat 7/35

Page 11: Slide show Powiter

Communauté• Communauté similaire à celle du logiciel Blender• Blender : multitâche mais peu performant• Une interface trop complexe

Alexandre Gauthier-Foichat 7/35

Page 12: Slide show Powiter

Philosophie: accessible

• Fournir une alternative gratuite

Nuke: 4000 euros After Effects: 1500euros

Alexandre Gauthier-Foichat 8/35

Page 13: Slide show Powiter

Philosophie: accessible

• Fournir une alternative gratuite

Nuke: 4000 euros After Effects: 1500euros

Alexandre Gauthier-Foichat 8/35

Page 14: Slide show Powiter

Philosophie: créatif

• Stimuler la créativité avec une interface simple

• Interface similaire aux autres logiciels du marché

Alexandre Gauthier-Foichat 9/35

Page 15: Slide show Powiter

Philosophie: créatif

• Stimuler la créativité avec une interface simple• Interface similaire aux autres logiciels du marché

Alexandre Gauthier-Foichat 9/35

Page 16: Slide show Powiter

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

Page 17: Slide show Powiter

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

Page 18: Slide show Powiter

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

Page 19: Slide show Powiter

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

Page 20: Slide show Powiter

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

Page 21: Slide show Powiter

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

Page 22: Slide show Powiter

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

Page 23: Slide show Powiter

Un exemple de graphe

Alexandre Gauthier-Foichat 14/35

Page 24: Slide show Powiter

Un exemple de graphe(2)

Alexandre Gauthier-Foichat 15/35

Page 25: Slide show Powiter

Un exemple de graphe(3)

Alexandre Gauthier-Foichat 16/35

Page 26: Slide show Powiter

Un exemple de graphe(4)

Alexandre Gauthier-Foichat 17/35

Page 27: Slide show Powiter

Un exemple de graphe(5)

Image tirée du film: La planète des singes: les origines

Alexandre Gauthier-Foichat 18/35

Page 28: Slide show Powiter

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

Page 29: Slide show Powiter

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

Page 30: Slide show Powiter

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

Page 31: Slide show Powiter

Graphes templates• Création de graphes "templates"

Conversion d’un graphe en un seul noeud

Alexandre Gauthier-Foichat 20/35

Page 32: Slide show Powiter

Graphes templates• Création de graphes "templates"

Conversion d’un graphe en un seul noeud

Alexandre Gauthier-Foichat 20/35

Page 33: Slide show Powiter

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

Page 34: Slide show Powiter

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

Page 35: Slide show Powiter

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

Page 36: Slide show Powiter

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

Page 37: Slide show Powiter

Viewer: Retour utilisateur

Interface pensée pour l’utilisateur

Alexandre Gauthier-Foichat 22/35

Page 38: Slide show Powiter

Viewer: Retour utilisateur(2)

Déplacement et zoom Couleurs au pixel près

Alexandre Gauthier-Foichat 23/35

Page 39: Slide show Powiter

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

Page 40: Slide show Powiter

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

Page 41: Slide show Powiter

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

Page 42: Slide show Powiter

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

Page 43: Slide show Powiter

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

Page 44: Slide show Powiter

SDK: Scripts

• Graphe configurable en scripts Python

Script pour changer le format : convert.py

Utilisation en ligne de commande

Alexandre Gauthier-Foichat 27/35

Page 45: Slide show Powiter

SDK: Scripts

• Graphe configurable en scripts Python

Script pour changer le format : convert.py

Utilisation en ligne de commande

Alexandre Gauthier-Foichat 27/35

Page 46: Slide show Powiter

SDK: Scripts

• Graphe configurable en scripts Python

Script pour changer le format : convert.py

Utilisation en ligne de commande

Alexandre Gauthier-Foichat 27/35

Page 47: Slide show Powiter

Le kit de développement

• Interface C++ simple et documentée permettant de créerde nouveaux noeuds.

Alexandre Gauthier-Foichat 28/35

Page 48: Slide show Powiter

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

Page 49: Slide show Powiter

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

Page 50: Slide show Powiter

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

Page 51: Slide show Powiter

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

Page 52: Slide show Powiter

Travail réalisé

• Interface utilisateur

• Moteur d’éxécution de graphe• Viewer• Moteur de cache

Alexandre Gauthier-Foichat 31/35

Page 53: Slide show Powiter

Travail réalisé

• Interface utilisateur• Moteur d’éxécution de graphe

• Viewer• Moteur de cache

Alexandre Gauthier-Foichat 31/35

Page 54: Slide show Powiter

Travail réalisé

• Interface utilisateur• Moteur d’éxécution de graphe• Viewer

• Moteur de cache

Alexandre Gauthier-Foichat 31/35

Page 55: Slide show Powiter

Travail réalisé

• Interface utilisateur• Moteur d’éxécution de graphe• Viewer• Moteur de cache

Alexandre Gauthier-Foichat 31/35

Page 56: Slide show Powiter

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

Page 57: Slide show Powiter

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

Page 58: Slide show Powiter

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

Page 59: Slide show Powiter

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

Page 60: Slide show Powiter

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

Page 61: Slide show Powiter

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

Page 62: Slide show Powiter

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

Page 63: Slide show Powiter

Questions

• Merci de votre attention !• Des questions?

Alexandre Gauthier-Foichat 35/35