Aller au contenu

Synchronisation

Utilité de la synchronisation

La synchronisation n'est utile que lors de l'utilisation d'un système de rendu distribué sur plusieurs machines. Dans les cas où l'affichage est assuré par un seul ordinateur, la synchronisation n'est pas utile.

Synchronisation par défaut

Lors de la création d'expérimentations compatibles Cave, un certain nombre d'entités sont converties en entités synchronisées de manière transparente. Le fonctionnement de ces entités sur un système à un seul projecteur ne pose aucun problème.

Mode Debug

Le mode Debug permet l'affichage du temps partagé par les ordinateurs sur le réseau.

Principe

Le principe de synchronisation est la suivant : dans VRmaze Sim, les entités ne sont pas synchronisées par défaut, ainsi, chaque entité dispose de son comportement propre sur chaque machine composant le cluster de rendu.

Il existe deux manières de synchroniser des objets : la manière automatique et transparente, qui consiste à utiliser des entités déjà synchronisées entre elles, ou la méthode manuelle qui consiste à utiliser des scripts de comportements.

Dans les deux cas de figure, le principe de fonctionnemen est le suivant : l'ordinateur maître envoie aux esclaves, à fréquence régulière, l'état des entités. Les esclaves interprètent les données qui leur arrivent de manière à rester synchronisés.

Référentiel temporel

Le temps est synchronisé et c'est le temps de l'ordinateur maître qui est utilisé.

Synchronisation automatique

Certaines entités sont spécialement conçues pour la synchronisation. Certaines listes sont directement intégrées pour prendre en charge la synchronisation, c'est le cas par exemple des conditions de succès d'un essai. En effet, certaines listes ont un état correspondant à une compilation de l'ensemble des états des enfants qui la compose. Ainsi, en synchronisant l'état de la liste, nous n'avons pas besoin de synchroniser l'ensemble des enfants.

Il existe 2 listes synchronisées :

  • La liste de contrôle des expérimentations
  • La liste des conditions de succès

Intérêt des listes synchronisées

L'intérêt des listes synchronisées réside dans le fait qu'elles sont capables d'utiliser tous les composants même ceux initialement non conçus pour la synchronisation.

Animations de propriétés

L'animation de propriété est un outil puissant dans VRmaze. Il est tout à fait possible de synchroniser une animation de propriété de manière à synchroniser l'état d'une entité sur les esclaves.

Synchronisation des animations de propriétés

Pour synchroniser une propriété, il faut utiliser le nœud Networked Float/bool property animation, qui s'utilise comme le nœud Float/bool property animation.

Synchronisation des animations de propriétés déclenchées

L'entité Networked Trigger Float/bool property animation permet une synchronisation des animations de propriétés déclenchées.

Fin d'essai synchronisée

La synchronisation de la fin d'essai est gérée par la liste des conditions de succès de manière automatique et transparente. Il n'y a pas besoin de prendre en charge manuellement la gestion de la fin d'essai.

Géométrie synchronisée

Les objets 3D peuvent être synchronisés en termes de position et d'orientation. L'ajout d'un script de comportement de type Networked Tranform permet de sélectionner les propriétés synchronisées de l'objet.

Synchronisation des autres propriétés ?

Dans la version actuelle de VRmaze, seules les propriétés de position et d'orientation sont synchronisables via des scripts de comportements. Les autres propriétés le seront dans une prochaine version.

Synchronisation des propriétés

Dans VRmaze Sim, il est possible de synchronisé la position d'un objet 3D (via le script Networked Tranform qui est direct) mais il est aussi possible de synchroniser n'importe quelle propriété de n'importe quelle entité. En effet, il est possible d'ajouter un ou plusieurs attributs de type Networked Number Property à une entité. Ainsi, les esclaves prendrons la valeur de la propriété de l'ordinateur maître.

Image title 2

L'attribut personnalisé "Networked Number Property".

Image title 2

Exemple de propriétés synchronisables d'une image 2D.

Comportement sur l'ordinateur maître

Le fait de synchroniser les esclaves au maître ne suffit évidement pas à produire une quelconque animation/interaction. Cette interaction doit être programmé, avec le système de graphe de comportement par exemple.

Démarrage de la passation

Attention, le démarrage de la passation n'est pas synchronisé entre l'ordinateur maître et esclave. Dans le cas d'une expérimentation à essai multiple, il est nécessaire de créer un premier essai tampon qui donnera le temps à tous les esclaves de démarrer de leur côté. Une autre solution consiste à utiliser l'instruction synchronisée Networked Start On Demand Instruction.

Synchronisation des interactions

L'utilisation du protocole VRPN permet une synchronisation des interactions entre l'ordinateur maître et esclaves. L'utilisation d'un périphérique supporté par VRPN est donc cruciale dans l'utilisation de VRmaze Sim en environnement de rendu distribué.