Aller au contenu

Configuration

La création d'un protocole de type Cave est plus complexe qu'un protocole conventionnel. Si les expérimentations proposées en Cave prennent en charge nativement les spécificités d'un système de projection complexe, il est toutefois nécessaire de procéder à une configuration spécifique.

En amont du protocole en lui-même, il est, en effet, obligatoire de renseigner les caractéristiques du système de rendu ainsi que les paramètres réseaux.

Système de rendu

Un système de rendu est directement lié au système de projection. Tant que le système de projection n'est pas modifié, il n'est pas nécessaire de procéder à une modification du système de rendu des protocoles. Nous conseillons donc la création d'un protocole vide dont la configuration du système de projection est réalisée. Il est ainsi facile de produire de nouveaux protocoles sur cette base commune.

Protocole initial par Antycip

La configuration du système de rendu est complexe, mais une version d'origine, conforme au système de projection vous sera fournie par InMind-VR et Antycip.

Configuration du système de rendu

Image title 2

Exemple de configuration du système de rendu.

La configuration du système de rendu passe par une configuration des nœuds de rendu (RenderNodes) pour lesquels il est nécessaire de procéder à une configuration des fenêtres de visualisation (Viewports).

Cette configuration est nécessaire et permet d'indiquer à chaque ordinateur, projetant une ou plusieurs images, les caméras à utiliser et les surfaces d'écrans sur lesquelles projeter.

Nœud de rendu

Image title 2

Propriétés d'un nœud de rendu.

Le nœud de rendu en lui-même est assez simple. Il est toutefois très important, car, au lancement de la passation, MindDev Sim vérifiera l'ensemble des nœuds de rendus du protocole et enverra, sur les adresses IpV4, un ordre de lancement du protocole (Cet ordre sera intercepté par le client MindDev Listener). Ce nœud dispose des propriétés suivantes :

  • Une adresse IpV4
  • Une résolution de rendu
  • Un type de nœud de rendu (ordinateur esclave ou maître)
  • L'écran de projection (le premier écran a l'indice 1)

Résolution de rendu

Il est tout à fait possible de rendre à une résolution plusieurs fois supérieure à la résolution habituellement Full HD (1920x1080). C'est notamment le cas dans les systèmes à un seul calculateurs ainsi que les systèmes de projections à doubles sorties graphiques.

Convention

Par convention, la liste des nœuds de rendu commence par l'ordinateur maître (Is Server). Il ne doit y avoir qu'un seul ordinateur maître dans la liste des nœuds de rendu.

Évitez d'utiliser le PC maître

Nous déconseillons vivement l'utilisation du PC maître comme ordinateur de rendu projetant une image. En effet, le PC maître à toujours quelques millisecondes d'avances sur l'ensemble des ordinateurs esclaves, nous conseillons donc de n'utiliser que des ordinateurs esclaves pour le rendu de la salle immersive. Ces ordinateurs esclaves sont synchronisés entre eux.

Cas d'un seul PC maître

Il faut une adresse ip, si aucune carte réseau n'est disponible, alors aucune adresse Ip ne sera disponible. Dans ce cas, le nœud de rendu devra renseigner le mot-clé me. Attention, dès lors que le système se compose de deux ordinateurs au moins, les adresse IpV4 sont obligatoires.

Utilisation Multi-GPU

Il est possible, sur un même ordinateur esclave disposant de plusieurs cartes graphiques, d’utiliser l’ensemble des ressources disponibles en matière de puissance graphique. En effet, le visualiseur de MindDev, basé sur Unity, est incapable de gérer plus d’une carte graphique par instance d’exécution de protocole.

Pour permettre une utilisation complète des ressources matérielles, la seule solution consiste à lancer plusieurs instances d’exécution de protocole. MindDev permet cette exécution multiple, sous certaines conditions et avec quelques options :

  • Le port de communication du serveur de temps doit être différent pour chaque instance sur un même poste.
  • Le port de communication du serveur de données doit être différent pour chaque instance sur un même poste.
  • Il est possible de spécifier une carte graphique précise pour un nœud de rendu.

Carte graphique associée à un nœud de rendu

L’attribut personnalisé GPU Renderer permet d’assigner une carte graphique spécifique à un nœud de rendu.

Par défaut, les ports de communication sont communs à tous les nœuds de rendu. En cas d’instanciation multiple, chaque instance doit utiliser des ports de communication qui lui sont propres. En effet, il n’est pas possible d’écouter un port de communication déjà utilisé par une autre application.

Il est donc nécessaire de configurer les ports de communication pour les serveurs de temps et de données.

Configuration du port de communication du serveur de temps

L’attribut personnalisé Network timer communication port permet de spécifier, pour le nœud de rendu auquel il est lié, le numéro de port à utiliser pour l’envoi des timecodes depuis le serveur.

Configuration du port de communication du serveur de données

L’attribut personnalisé Network communication port permet de spécifier, pour le nœud de rendu auquel il est lié, le numéro de port à utiliser pour l’échange de données avec le serveur.

Instances multiples d’exécution de protocole

Par défaut, les ports de communication sont définis pour l’ensemble des nœuds de rendu. En cas d’utilisation d’instances multiples, il est indispensable de spécifier les ports de communication du serveur de temps et du serveur de données.

Fenêtre de visualisation

Image title 2

Propriétés d'une fenêtre de visualisation.

Chaque nœud de rendu est lancé lors de la passation. Il est nécessaire qu'au lancement, l'ordinateur esclave sache quoi afficher et comment l'afficher. C'est le rôle de la fenêtre de visualisation (Viewport). Une fenêtre de visualisation permet de configurer la zone d'image à rendre et la caméra associée. Les propriétés d'une fenêtre de visualisation sont les suivantes :

  • Nom de la caméra liée
  • Position de la fenêtre de rendu
  • Taille de la fenêtre de rendu

Un ordinateur peut rendre autant de viewports que nécessaire, toutefois, ces viewports ne peuvent pas se superposer. Concernant l'occupation de l'espace, les coordonnées demandées sont exprimées en pourcentage la résolution de rendu. La coordonnée {0,0} (minimum) est en bas à gauche tandis que la coordonnée {1,1} (maximum) est en haut à droite.

Une fois la zone de rendu définie, il convient de spécifier le nom de la caméra à rendre. Ce nom de caméra doit être présent dans chacune des structures d'essai du protocole, ainsi, à chaque instant de la passation, l'ordinateur est capable de lier une zone de rendu à une caméra de rendu.

50% d'un écran = image aplatie ?

Attention, il s'agit bien du pourcentage de la résolution totale. Dans le cas d'une résolution double full HD, une image projetée sur 50% de la largeur d'image produira bel et bien une image à la résolution 1920x1080.

Ressources graphiques ?

Plus un ordinateur doit rendre de viewports plus les ressources demandées sont conséquentes. Le doublement de fenêtre de visualisation provoque une consommation de ressource 2x supérieure, quelle que soit la résolution de sortie.

Nom de caméra

Le nom de caméra est sensible à la casse.

Exemple de cas

Un cas simple : imaginons un ordinateur esclave devant gérer l'affichage stéréoscopique (avec deux canaux) pour un projecteur. La résolution de sortie (surface de pixel) du nœud de rendu doit être équivalente à 2x la résolution d'une seule sortie graphique. Ce nœud de rendu disposera de deux viewports : l'un pour l'œil gauche, l'autre pour l'œil droit, avec des fenêtres de visualisation qui occuperont 50% de la largeur d'écran.

Configuration réseau

Image title 2

Propriétés réseau.

Les propriétés réseaux du protocole Cave permettent de configurer la manière de communiquer des ordinateurs. Par défaut, les paramètres de ports de communication peuvent être laissés ainsi ce qui assure un fonctionnement du système de rendu distribué.

Seules les propriétés de latence et de fréquences d'envoi nécessitent d'être adaptées au protocole. En effet, ces paramètres peuvent avoir une influence sur le comportement et la fluidité de l'affichage sur les ordinateurs esclaves : il faut toujours que la fréquence d'envoi des informations soit supérieure à la latence pour permettre aux ordinateurs esclaves de toujours avoir des données dans leur tampon mémoire.

La latence d'affichage n'impacte que les actions produites par le participant sur l'ordinateur maître (les interactions à la manette, etc.). L'ordinateur maître enverra les nouveaux états des objets rapidement, mais seront interprétés avec la latence paramétrée.

Fréquence d'envoi

La fréquence d'envoi est exprimée en Hz, ou en nombre d'envois par seconde. Une fréquence de 50 à 100 Hz est normalement largement suffisante.

Latence

Concernant la latence, exprimée en secondes, une latence de 0.03s jusqu'à 0.1s n'est presque pas perceptible par le participant.

Pare-feu et antivirus

Dans le cas où la communication réseau pose des problèmes, il est possible que le pare-feu ou l'antivirus installés sur l'ordinateur en soit l'origine.