Addons Blender#

Cette section concerne les addons pour Blender.

Exporter la configuration depuis Blender#

Une fois que Splash est compilé, un addon Blender est généré, prêt à être installé. Cet addon permet de :

  • créer un brouillon de scène (objets texturés et caméras) et l’exporter en temps que configuration pour Splash

  • envoyer en temps réel, à travers shmdata, des maillages et des textures de Blender vers Splash.

Pour l’installer :

  • téléchargez le depuis ici

  • décompressez l’archive. Vous obtiendrez une archive zip (l’addon) et un répertoire contenant des exemples

  • ouvrez la fenêtre Préférences utilisateur de Blender

  • sélectionnez le panneau Add-ons, puis Installer...

  • naviguez vers le répertoire de téléchargement et sélectionnez blenderSplash.zip

  • activez l’addon qui devrait apparaître dans la catégorie User

Notez que vous aurez besoin d’avoir le module Python Numpy installé.

L’addon ajoute un nouveau type d’arbre accessible à travers l’éditeur « Splash Tree ». Ici, vous pouvez créer de zéro une nouvelle configuration en reliant des nœuds qui ont les mêmes paramètres que leur contrepartie dans Splash. Pour ajouter un nouvel arbre, cliquez sur « Nouveau ».

Vue des nœuds dans Blender

Vue des nœuds dans Blender#

Pour ajouter un nœud, pressez Shift + A ou utiliser la barre d’outils. Seuls les objets les plus utiles sont disponibles dans cet addon. En somme, il est destiné à permettre n’importe quel type de configuration, mais pas d’utiliser Splash de manière détournée. Les nœuds suivants sont disponibles (voir la section Architecture logiciel pour plus d’informations) :

  • World

  • GPU

  • Window

  • Camera

  • Object

  • Probe

  • Mesh

  • Image

  • Gui, qui est une fenêtre spéciale dédiée à l’affichage de l’interface utilisateur. Elle doit être le premier nœud relié à la première Scene de la configuration.

Toute configuration doit avoir un nœud World, au moins une Scene, une Window et une Camera. Il faut également un Object, un Image et un Mesh pour que quoi que ce soit soit projeté. La configuration (utile) la plus simple ressemble à ceci :

Configuration la plus simple

Configuration la plus simple#

Une fois que la configuration est terminée, l’export se fait au moyen du bouton « Export configuration » du nœud World. Notez qu’il peut y avoir plusieurs nœuds World, permettant à de multiples configuration d’être contenu dans un même arbre. Si un maillage Blender a été sélectionné avec un nœud Mesh, il sera exporté en temps que fichier OBJ. Et si une caméra Blender a été sélectionnée avec un nœud Camera, ses paramètres (intrinsèques et extrinsèques) sera utilisés pendant l’export.

Vous pouvez également n’exporter qu’une partie de la configuration, plus précisément juste les données relatives aux images et aux modèles 3D, en utilisant le bouton « Export project » du nœud World. Cela permet de changer la surface de projection et les médias projetés, tout en conservant le calibrage. En pratique, l’utilisateur doit charger un fichier de configuration, puis un fichier de projet depuis l’interface utilisateur de Splash.

Enfin, il est possible de n’exporter que les modèles 3D en utilisant le bouton « Export 3D models ». C’est utile du fait que Splash utilise des paramètres spécifiques pour l’export OBJ, et cela exporte tous les modèles 3D en une seule fois.

Envoyer des maillages en direct de Blender vers Splash#

Un autre addon utile pouvant être combiné avec Splash est l’addon shmdata. Shmdata est une bibliothèque qui permet de partager des zones mémoires entre des logiciels, et l’addon shmdata apporte cette fonctionnalité dans Blender. Plus spécifiquement elle permet de partager des maillages de Blender vers Splash, de manière à ce que l’utilisateur puisse modifier la surface de projection en temps réel.

Pour l’installer, vous devez tout d’abord installer la bibliothèque shmdata si ce n’est pas déjà le cas. Veuillez vous référer à la documentation de shmdata. Vous pouvez alors installer l’addon shmdata pour Blender en suivant sa documentation.

Une fois installé dans Blender, vous devriez voir une section supplémentaire dans les propriété de l’objet, lorsqu’un objet 3D est sélectionné : Shmdata properties. Cette section a un unique boutton, Send mesh, qui devrait envoyer l’objet sélectionné en mémoire partagé. Toute modification au maillage 3D sera envoyée en temps réel à n’importe quel logiciel client connecté au même socket shmdata.

Addon shmdata pour Blender

Addon shmdata pour Blender#

Par exemple pour envoyer le cube par défaut, un socket de mémoire partagée va être créé dans le système de fichier au chemin /tmp/blender_shmdata_mesh_Cube. Vous pouvez vérifier que les paquets sont envoyés correctement avec la commande suivante :

sdflow /tmp/blender_shmdata_mesh_Cube

Vous devriez obtenir quelque chose ressemble à ceci lorsque vous déplacez le cube :

connected: type application/x-polymesh
0    size: 896    data: 3F8000003F80000000000006000000...
1    size: 896    data: 3F8000003F80000000000006000000...
2    size: 896    data: 3F80E7C33F80683400000006000000...
3    size: 896    data: 3F80E7C33F80683400000006000000...
4    size: 896    data: 3F8254DC3F8204CE00000006000000...
5    size: 896    data: 3F8254DC3F8204CE00000006000000...
6    size: 896    data: 3F85917A3F8471CF00000006000000...
7    size: 896    data: 3F85917A3F8471CF00000006000000...

À partir de là, connectez Splash à la mémoire partagée. Dans Splash, dans le panneau Mesh, sélectionnez un maillage et changez son type de mesh from obj file vers mesh through shared memory with shmdata (vous pourriez avoir à recompiler Splash avec le support de shmdata activé). Puis tapez le chemin vers le socket de mémoire partagé de la zone appropriée. Le cube devrait apparaître dans Splash une fois que celui-ci est modifié / déplacé dans Blender.

Transmission en direct de Blender vers Splash

Transmission en direct de Blender vers Splash#