Exemple avec un seul projecteur#
Cet exemple démontre comment projeter sur un objet connu pour lequel nous avons un modèle 3D. Les étapes sont les suivantes :
créez un modèle 3D de l’objet qui jouera le rôle de surface de projection,
exportez de Blender un fichier de configuration initial,
ouvrez le fichier dans Splash, calibrez le projecteur,
chargez du contenu qui sera diffusé sur la surface.
Pour faire ce tutoriel, vous aurez besoin de :
Splash installé sur un ordinateur
un vidéoprojecteur connecté sur l’ordinateur
un objet en forme de boîte
Créer un modèle 3D de l’objet#
Nous utiliserons un exemple simple composé d’une boîte - dans notre cas, d’un cube - pour servir de surface de projection. Ceci facilite la création d’un modèle 3D, ce qui est bien puisque ce sujet est un peu hors du champ de Splash. En effet, Splash est spécialisé dans la gestion des vidéo-projecteurs, et non pas en création de modèle 3D. Une des options est alors de créer un modèle à partir des dimensions réelles de l’objet, une autre est d’utiliser des techniques de photogrammétrie.
Ainsi, en prenant pour acquis que vous savez comment utiliser Blender, nous avons maintenant un objet réel et sa contrepartie virtuelle, dont les géométries sont semblables. Sans avoir mesuré le cube, cela s’est prouvé suffisant (à défaut d’être parfait) pour les prochaines étapes.
Une note utile est que le calibrage de projecteurs exige que la personne l’utilisant définisse au moins sept points par projecteur, ce qui signifie que chaque projecteur doit voir au moins sept points. Ainsi, ajoutez quelques points (à l’aide de subdivision) si votre modèle est un simple cube.
Il est nécessaire d’avoir des coordonnées de texture afin de pouvoir réaliser la vidéofresque (projection mapping ou videomapping en anglais). Pour ajouter les coordonnées de texture, sélectionnez le maillage avant de vous placez en mode Edit (touche Tab), appuyez sur la touche U et sélectionnez Smart UV Project. Sortez du mode Edit en appuyant sur la touche Tab de nouveau.
Configurer Splash#
Splash peut être configuré directement à partir du logiciel, ou en utilisant l’addon Blender. Les deux ont leurs avantages. La configuration depuis Splash permet de ne pas avoir à apprendre Blender (ce qui peut être un bon argument si vous créez le modèle 3D avec un autre logiciel). De plus, il est généralement plus rapide de commencer une nouvelle configuration car il n’y a pas d’export/import, même si l’interface peut être un peu verbeuse. D’un autre côté, la configuration à l’aide de Blender permet de pré-positionner le modèle 3D et les caméras, ce qui peut faciliter le calibrage par la suite.
Pour cet exemple, nous considérerons qu’il y a un écran et un vidéoprojecteur connectés à l’ordinateur, le vidéoprojecteur étant le deuxième écran avec une résolution de 1920x1080. Nous voulons produire sur le vidéoprojecteur, tout en conservant une fenêtre pour l’interface graphique sur le premier écran.
Configuration depuis Splash#
Pour commencer à créer la configuration à partir de Splash, je suggère fortement de lire l’introduction à la configuration de Splash. En suivant ce tutoriel, Splash sera pratiquement prêt à continuer à calibrer le projecteur, sauf que vous devrez supprimer l’une des caméras (ou vous abstenir de l’ajouter en premier lieu). Une fois que vous avez préparé la configuration en suivant ce tutoriel, assurez-vous de la sauvegarder dans son propre fichier.
Il y a cependant une dernière étape : exporter l’objet 3D de Blender et l’importer dans Splash. Splash utilise des fichiers OBJ pour le stockage des objets 3D. Dans Blender, sélectionnez l’objet 3D précédemment créé et ouvrez le menu Fichier > Exporter > Wavefront (.obj). Définissez les options suivantes :
activer Sélectionnés uniquement, pour exporter uniquement le modèle 3D et non le reste de la scène
spécifier Z pour Axe vers le haut
désactiver l’exportat des matériaux, car ils ne sont pas nécessaires
Vous pouvez maintenant exporter le modèle 3D dans le fichier OBJ de votre choix. Il est conseillé de le conserver à proximité du fichier de configuration Splash précédemment enregistré.
Retournez maintenant dans Splash, allez dans la tabulation Meshes et chargez le fichier OBJ en utilisant le sélecteur de fichier …. Le modèle 3D devrait apparaître dans Splash avec la texture par défaut. Vous êtes maintenant prêt à passer à la section Calibrage du projecteur dans Splash.
Export de la configuration depuis Blender#
Ici nous allons créer la configuration de Splash en utilisant Blender. Avant tout, assurez-vous de lire la documentation de l’addon, car cela vous aidera pour la suite.
En poursuivant avec la scène Blender que nous avons créée dans la première partie, nous allons profiter du fait qu’une caméra par défaut est déjà présente dans la scène 3D. Nous pouvons créer l’arbre de nœuds Splash. Allez dans l’éditeur de nœuds Splash, et créez et éditez un nouvel arbre de nœuds :
La fenêtre d’interface graphique est créée par le biais d’un mode dédié, l’autre fenêtre est créer par le biais d’un noeud Window défini comme étant plein écran sur le second écran, celui-ci ayant 1 comme index. La caméra contenant les paramètres du projecteur vidéo est connectée à cette Window, et l’objet Object est connecté à la Caméra. Le noeud Mesh (maillage) est configuré de façon à utiliser les données provenant de l’objet Blender représentant un cube, et la Caméra est configurée de façon à utiliser les données provenant de la caméra Blender. Enfin, l’image choisie pour le noeud Image est le fichier “color_map.png”, situé dans le dossier “data” des sources de Splash, étant donné que c’est plutôt pratique pour le calibrage.
Maintenant, nous devons cliquer sur “Export configuration” dans le noeud World, de façon à en exporter tous les noeuds lui étant connectés. Nommons le fichier obtenu “configuration.json”. Le maillage de l’objet Blender sera automatiquement exporté dans le répertoire.
Il est maintenant temps d’exécuter Splash avec notre nouveau fichier de configuration. Afin de ce faire, lancez Splash avec un fichier de configuration par défaut avant de faire glisser le nouveau fichier de configuration sur une des fenêtres. Vous pouvez aussi lancer Splash à partir de la ligne de commande en passant le fichier de configuration en paramètre:
splash configuration.json
Deux fenêtres apparaissent. L’une est la fenêtre que vous avez configurée précédemment, qui apparaît sur le vidéoprojecteur et affiche la boîte, bien qu’elle ne soit pas calibrée du tout. L’autre fenêtre semble vide, mais un simple Ctrl + Tab sur celle-ci affichera l’interface graphique, ce qui sera utile pour aller de l’avant.
Calibrage du projecteur dans Splash#
Naviguez dans l’interface graphique, l’onglet important étant “Cameras”. Ouvrez-la et sélectionnez la caméra que nous avons configurée dans Blender (qui est subtilement nommée “Camera”). Ce qui est affiché dans la vue 3D est maintenant exactement ce qui est projeté par le vidéoprojecteur (à l’exception de l’échelle).
Appuyez maintenant sur Ctrl + W: ceci permet de passer au rendu en fil de fer. Nous allons maintenant configurer sept points de calibrage de la façon suivante, à partir de la vue par interface graphique:
sélectionnez un point sur le maillage en faisant un clic-gauche sur celui-ci,
le point sélectionné est maintenant entouré d’une sphère, et une croix apparaît au milieu de la vue,
déplacez la croix en appuyant sur la touche Shift et en faisant un clic-gauche à n’importe quel endroit de la vue,
tout en regardant la projection qui est effectuée sur l’objet réel, placez la croix sur le point correspondant au point sélectionné,
vous pouvez déplacer la croix de façon plus précise avec les touches flèches,
et répétez pour le prochain point. Si vous avez sélectionné le mauvais point, vous pouvez annuler la sélection en appuyant sur Ctrl et en faisant un clic-gauche sur le point,
vous pouvez aussi mettre à jour un point sélectionné précédemment en le re-sélectionnant.
Lorsque vous avez configuré sept points, vous pouvez demander à Splash de calibrer la caméra et le vidéo-projecteur: appueyz sur C tout en survolant la vue 3D pour voir le rendu fil de fer virtuel de l’objet projeté sur l’objet réel :
Retournez à la vue de texture en appuyant sur Ctrl + T, et sauvegardez le résultat en appuyant sur Ctrl + S. Le calibrage est terminé, et nous pouvons maintenant configurer une vidéo afin de le diffuser sur la boîte !
Ajouter une vidéo pour diffusion#
L’étape finale consiste à remplacer la texture statique utilisée précédemment par un film. À partir de Splash, sélectionnez l’onglet “Medias”.À cet endroit se trouve une liste de toutes les données entrantes de votre configuration et il est possible de les modifier. Sélectionnez le seul objet dans la liste, puis changez son type pour le faire passer de “image” à “video”. Ensuite, mettez à jour l’attribut “file” à l’aide de l’adresse complète d’un fichier vidéo.
Et nous avons terminé ! Il vous est maintenant possible de voir la vidéo jouer sur l’objet, en accord avec les coordonnées UV créées dans Blender. Ici, nous choisissons les mêmes coordonnées pour toutes les faces du cube, de façon à ce que la même vidéo soit projetée sur chacune d’elles.
Il y a encore beaucoup de choses à dire, puisqu’avec cette méthode, il est possible de calibrer plusieurs projecteurs (le nombre est théoriquement illimité) afin de projeter sur plusieurs objets. Le mélange entre les projecteurs est calculé de façon automatique en appuyant sur Ctrl + B lorsque le calibrage de tous les projecteurs est terminé. Il est aussi possible d’alimenter Splash avec un maillage modifié en temps réel dans Blender en utilisant le tableau Splash dans l’outil de 3D View.