» fr.Boygrouping
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

fr.Boygrouping

English | Mandarin | Spanish | Italian | Russian

The original english version of this page is newer and may contain information this translation does not have! Click here to view the english version.

Le boygrouping fait appel à l'architecture client-serveur intégrée à vvvv. Il vous permet de contrôler n'importe quel nombre d'ordinateurs afficheurs (les clients) à partir d'un seul ordinateur (le serveur). Pendant que vous vous occupez du patching sur le serveur, vvvv prend soin de faire fonctionner les clients connectés de manière n'sync. Le boygrouping est souvent utilisé dans des systèmes multi-écrans ou des installations multi-projecteurs sans raccord.

Installation Matérielle

Un boygroup consiste la plupart du temps en un pc-serveur dédié et n'importe quel nombre de pc-clients, le tout connecté par ethernet. Les connexions Gigabit sont bien entendu conseillées, mail il est déjà arrivé aux développeurs de faire du boygrouping dans vvvv alors que le 100baseT était le top du top...

Le boygroup le plus simple consisterait en un seveur et un seul client. Dans une telle configuration, vous pourriez même utiliser la sortie plein-écran du serveur comme une des sorties principales. Cependant, en fonction des ressources demandées par vos patches, cela ne serait peut-être pas une bonne idée étant donné que, la plupart du temps, le serveur fonctionne à une fréquence-image (framerate ou fps) inférieure à celle du client, puisqu'il a plus de travaille à fournir.

Structure du Répertoire

Il est généralement préférable de créer une structure de répertoire comme la suivante quand vous travaillez sur un projet spécifique avec vvvv:

 
C:\MONPROJET\patches C:\MONPROJET\ressources C:\MONPROJET\vvvv

Dans un boygroup, plus particulièrement, il est utile de partager le répertoire \MONPROJET pour son accès en réseau et de créer la même structure sur tous les clients. Notez cependant que les clients n'auront pas besoin des fichiers .v4p du dossier \patches, puisqu'ils recevront toutes leurs nodes depuis le serveur comme par magie! En revanche, vous pouvez placer les fichiers .fx dans ce dossier sur les clients, même s'il sont également présents sur le serveur.

Le boygroup ne transmet aucune ressource (texture, video, fichiers d'effets...) par réseau. Seule les données primitives sont prises automatiquement en charge. Ainsi, toutes les ressources auxquelles le patch du serveur a accès doivent également être disponibles sur les clients, dans les même répertoires. La synchronisation des structures de répertoire du serveur et des clients peut facilement être faite avec un simple outil de symétrisation

Préparation des Clients

La partie "client" du patch est plutôt simple et clair. En fait aucun patching n'a besoin d'être fait sur les clients. Tout ce que vous avez à faire est de lancer vvvv.exe avec le paramètre d'exécution? /client [IPServeur]. comme ceci:

 
vvvv.exe /client 192.168.0.100

en partant du principe que 192.168.0.100 est l'adresse IP de votre serveur. Vous pouvez vérifier que vvvv est effectivement en mode client en regardant la barre des tâches: le bouton vvvv devrait désormais afficher quelque chose comme ça:
192.168.0.100=S

Préparation du Serveur

Sur le serveur, démarrez vvvv avec le paramètre d'exécution? /server et notez que le bouton vvvv de la barre des tâches affiche maintenant SERVER! pour indiquer son mode de fonctionnement.

Dans la même ligne de commande vous pouvez spécifier une IP de diffusion optionnelle sur laquelle le boygroup devrait fonctionner. Comme:

 
vvvv.exe /server 192.168.0.255
Cela peut être utile si votre serveur possède plusieurs périphériques réseau. Si aucune IP n'est renseignée, l'adaptateur réseau par défaut de Windows sera choisi.

Pour dire au serveur quels sont les clients avec lesquels il doit communiquer, créez une node Boygroup (VVVV Server). Au pin "Clients" de cette node, connectez la liste des adresses IP de tous vos clients. En général, vous obtiendrez un patch similaire à celui-ci:

Notez que la node Boygroup renvoie une spread de valeur booléennes indiquant l'état de connexion pour chaque client. Si tout est paramétré correctement, ils devraient apparaître comme connectés quelques secondes après avoir été démarrés.

Boygroup dans le Patch

Les nodes bleu

Lorsque vvvv fonctionne en mode serveur, le raccourci clavier Ctrl+B vous permet de boygrouper des nodes individuelles. Les nodes boygroupées deviennent bleu, ce qui indique qu'elles ont été reproduites sur les clients (même si vous ne les voyez pas) et sont désormais calculées par eux.

D'ordinaire, vous commencerez plutôt par boygrouper un Renderer. Remarquez comment vvvv boygroupe automatiquement certaines nodes connexes. C'est dû au fait que les nodes connectées via des "connexion de nodes" (comme les transformations, les textures, l'audio, la vidéo, les sorties d'objet, etc.) ont besoin d'être connectées du même côté du réseau. Pas la meine de vous prendre d'avantage la tête, tout est automatique.

En revanche, ce qui nécessite un peu plus de compréhension est quelles seront les nodes non-boygroupées automatiquement que vous devrez boygrouper manuellement pour de meilleurs résultats. Il n'y a pas de règle générale du style "boygroupez comme des gorets!" ou "ne boygroupez qu'en cas d'extrême nécessité"...

A la place, soyez conscient que toutes les données voyageant entre les nodes boygroupées (en bleu) et les nodes normales (en gris) sont transférées à travers le réseau à chaque image (mais uniquement si ces données sont modifiées, bien sûr). Par conséquent, vous devriez prendre garde à ce que ces connexions ne transportent pas de spreads trop grandes, et privilégier plutôt les nodes qui créent des spreads. De plus, il existe une limitation du réseau qui empêchera le boygroup de transmettre si vous essayez d'envoyer des spreads de très grandes tailles (voir la FAQ ci-dessous).

Jetons un coup d'oeil à 3 scénarios de boygrouping différents auxquels vous pourrez être confronté:

  • La node expéditrice (en gris) n'existe que dans le serveur alors que la node réceptrice (en bleu) est sur le client. Lorsqu'elles changent, toutes les valeurs sont transmises via UDP à chaque image. Etant donné que l'UDP ne garanti ni un débit de données fixe ni une latence fixe, vous remarquerez un léger retard ou des saccades dans l'animation de vos objets. Si des données d'animation sont transmises du serveur vers les clients, il est donc utile d'avoir un Damper (Animation) comme première node sur le client.
  • Les deux nodes existent sur le client. Ici, aucune donnée n'est transmise. Les nodes du client sont connectées localement et les données sont transmises en interne. Donc vous aurez des animations fluides, comme d'habitude.
  • La node expéditrice (en bleu) est boygroupée alors que la réceptrice (en gris) ne l'est pas. Ici, aucune donnée n'est transmise. Sur le serveur vous verrez toujours les valeurs calculées localement mais il n'est pas possible de retrouver des valeurs depuis les clients.

Déterminer quels sont les meilleures nodes à boygrouper nécessite un peu d'entraînement mais, en général, vous ne pouvez pas faire de grosses erreurs. Si votre résultat est lent ou saccadé, essayez de boygrouper des nodes différentes ou ajoutez une node Damper (Animation) bleu à votre animation.

ID Clients

Tous les clients devraient autant que possible fonctionner en parfaite synchro, ce qui n'est pas une tâche si lourde. Imaginez Justin, Lance, JC, Joey et Chris en train d'effectuer leurs pas de danse sur scène, tous exactement à la même position. Bien que cela créerait des artefacts intéressants (vous avez vu "La Mouche" de Cronenberg?), cela serait totalement impossible dans notre monde à 3 dimensions. Par conséquent, le boygrouping introduit un "ClientID" qui est le seul moyen pour vous de distinguer les différents clients à partir d'un patch.

La node Boygroup (VVVV Client) renvoi un ID différent à chaque client, compris entre 0 et (NombreDeClients-1). L'ordre dépend de la spread d'adresses IP que vous avez injectée dans la node Boygroup (VVVV Server). L'IP à la slice 0 sera le client 0, l'IP à la slice 1 sera le client 1 et ainsi de suite. Notez que sur le serveur, Boygroup (VVVV Client) renvoi la valeur que vous avez fixée pour son entrée "ServerID", et que cette valeur arbitraire n'a aucun impact sur les clients. Changer de ServerID vous permet seulement de simuler n'importe lequel des clients sur le serveur.

Pour un patch test simple regardez

 girlpower\takethat.v4p.

Vous y verrez la node Boygroup (VVVV Client) à l'oeuvre. Dans l'exemple, elle est utilisée pour décaler la caméra sur chaque client.

Mettre les Clients en Plein-Ecran

Le scénario de boygrouping standard consiste à ce que vous vouliez continuer de patcher sur le serveur alors que les clients sont en plein-écran. Par conséquent, vous voudrez que les pins "Fullscreen" des Renderers soient fixés à 1 sur les clients et à 0 sur le serveur. Souvenez-vous que le seul moyen de distinguer le serveur des clients (et les clients entre eux) est le ClientID. En fonction de ça, vous pouvez faire un patch comme celui-ci pour avoir un renderer en fenêtre sur le serveur et en plein-écran sur les clients.

Synchroniser des lectures de vidéo

Reportez-vous à tonfilm-VideoSync?

Interprétateur de Commande à Distance (Remote Shell)

Lorsque vous avez affaire à un nombre important de clients, il est souvent utile de démarrer/arrêter vvvv.exe sur chacun d'entre eux grâce à un seul clic du serveur. Ceci peut être fait via la node Remote Shell RSh (Network). Reportez-vous à RSH HowTo.

Pour que cette node fonctionne, les clients doivent exécuter l'écouteur de Remote Shell. Allez voir rshd.

Sortie de Veille (WakeOnLAN)

Grâce à la fonction WakeOnLAN des cartes mères vous pouvez facilement dire aux pc clients de démarrer dés que le serveur a fini de démarrer. Voyez tonfilm-WOLandShutdown?.

FAQ

Pourquoi Ctrl+B ne fonctionne pas?

Ce raccourci ne fonctionne qu'en mode serveur. Démarrer vvvv avec la marque /server pour activer le boygrouping

VVVV est en mode serveur mais Ctrl+B ne fonctionne toujours pas?

Jetez un coup d'oeil au Renderer (TTY). Il vous dira peut-etre pourquoi cette opération ne peut pas être effectuée. D'ordinaire, la raison est que vous êtes dans un sous-patch ou que des nodes Send/Receive sont impliquées. Pas de panic, toutes ces situations peuvent être résolues.

Il semble que les "bangs" n'arrivent pas aux clients?!

Eh ouais... Il y a des chances pour que ça arrive car le serveur et les clients ne sont pas synchronisés. Il se peut que les clients s'exécutent plus rapidement que le serveur, celui-ci étant quelque peu surchargé. Bien que le "bang" soit effectivement émis par le serveur, il se peut qu'il arrive aux client dans l'intervalle de 2 images et soit annulé.

Quels ports réseau le boygrouping utilise t-il?

VVVV établit une connexion TCP sur le port 3333 avec chaque client pour la transmission de tous les changements de graphe. Tous les changements de valeur sont diffusées sur le port UDP 3333. Sur la node Boygroup (VVVV Server) vous pouvez, en théorie, changer le protocole UDP pour le TCP; ce qui, en pratique, n'a pas grand intérêt. L'option "Quiet" serait plus utile puisqu'elle désactive la diffusion des changements de valeurs.

Je ce comprend toujours pas à quoi servent les pins des nodes Boygrouping (Server) et (Client)!

Boygroup (VVVV Server)

  • Inputs:

Clients: La liste des adresses IP de chaque client
LogToTTY: Permet de choisir quel type de messages vous voulez voir dans le Renderer TTY (utile seulement pour le débogage)
Broadcast Mode: Choisi quel protocole (TCP ou UDP) le serveur utilisera pour communiquer avec les clients. Pour le moment, utilisez TCP. UDP ne fonctionne pas sur certains PC

  • Outputs:

Connected: Une spread correspondant à la liste des adresses IP de l'entrée "Clients" et qui vous indique lesquels sont connectés.

Boygroup (VVVV Client)

  • Inputs:

ServerID: Permet de saisir l'ID qui apparaît en sortie du serveur
LogToTTY: Permet de choisir quel type de messages vous voulez voir dans le Renderer TTY (utile seulement pour le débogage)
Graph Request:

  1. OnEveryConnect: Chaque fois qu'un client se connecte, il déchargera son graphe actuel et appellera le graphe du serveur. Utilisez cette option durant la paramétrage/débogage
  2. OnFirstConnectOnly: Mode "Présentation". Si durant la présentation le client se déconnecte brièvement pour une raison diverse, il ne devrait pas appeler le graphe entier à la reconnexion puisque celui-ci n'aura pas changé
  3. Output:

ClientID: L'ID respective de chaque client (si le client n'est pas connecté, l'ID est de -1)

Quelques Conseils pour Préparer un Boygroup (par Joreg)

Logiciels utiles

  • Pilotes de cartes graphiques et réseau à jour
  • Editeur de texte (bloc-note de Windows ou NotePad++)
  • Décompresseur ZIP
  • Serveur VNC, par exemple TightVNC
  • MediaPlayer Classic
  • PowerToys Tweak UI
  • Editeur de graphe + registre proppage.dll (pour déboguer les problèmes avec directshow)
  • BGInfo (pour plus d'informations sur votre configuration)
  • Firefox
  • Subversion

system settings

Paramètres système

  • BIOS: mise sous tension après une défaillance d'alimentation
  • Pas de son
  • Pas d'économiseur d'écran
  • Désactiver le rapport d'erreurs (Système>Avancé>Rapport d'Erreurs
  • Options d'alimentation: Toujours Actif (voir les réglages d'affichage)
  • Poste de Travail>Propriétés>Avancé>Système>Performances réglages maximum
  • Supprimer les icônes du bureau
  • Désactiver l'assistant nettoyage de bureau: Paramètres d'Affichage>Bureau>Personnalisation du Bureau
  • Paramétrer la résolution d'écran, couleurs 32bit
  • Clic-droit sur Démarrer>Propriétés>Barre des Tâches: ne pas conserver la barre des tâches au-dessus des autres fenêtres (utile pour le plein-écran)
  • Menu Démarrer: afficher les outils d'administration, afficher en tant que menu connexions, afficher en tant que menu panneau de configuration, menu démarrer classique
  • Barre des langues désactivée, supprimer le clavier anglais
  • Connexion>Connexion au réseau local>Propriétés: afficher l'icône dans la zone de notification une fois connecté
  • Nettoyer la zone de notification des programmes inutiles
  • Vider la corbeille
  • Thème Windows Classique
  • Connexion administrateur automatique
  • Désactiver les alertes du centre de sécurité
  • Respecter la même structure de projet sur tous les ordinateurs

Après avoir redémarré

  • Changer les IP
  • Changer les noms d'ordinateur

Sur le serveur:

  • Utilisez la commande shutdown.exe de Windows pour éteindre les clients
  • N'oubliez pas le WakeOnLan et un outil de symétrisation

anonymous user login

Shoutbox

~2d ago

joreg: vvvvTv S0204 is out: Custom Widgets with Dear ImGui: https://youtube.com/live/nrXfpn5V9h0

~2d ago

joreg: New user registration is currently disabled as we're moving to a new login provider: https://visualprogramming.net/blog/2024/reclaiming-vvvv.org/

~10d ago

joreg: vvvvTv S02E03 is out: Logging: https://youtube.com/live/OpUrJjTXBxM

~12d ago

~13d ago

joreg: Follow TobyK on his Advent of Code: https://www.twitch.tv/tobyklight

~17d ago

joreg: vvvvTv S02E02 is out: Saving & Loading UI State: https://www.youtube.com/live/GJQGVxA1pIQ

~17d ago

joreg: We now have a presence on LinkedIn: https://www.linkedin.com/company/vvvv-group

~24d ago

joreg: vvvvTv S02E01 is out: Buttons & Sliders with Dear ImGui: https://www.youtube.com/live/PuuTilbqd9w

~1mth ago

joreg: vvvvTv S02E00 is out: Sensors & Servos with Arduino: https://visualprogramming.net/blog/2024/vvvvtv-is-back-with-season-2/

~1mth ago