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

sp.Boygrouping

English | Mandarin | French | 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.

Boygrouping denota la arquitectura interna de cliente o servidor de vvvv.

Esto permite controlar el render de cualquier cantidad de ordenadores cliente con un solo ordenador servidor .

Toda la programación se hace en el servidor y vvvv se ocupa de darle la orden a todos los clientes para que anden en sincronia n'sync.

El resultado de las aplicaciones usando Boygrouping suelen ser sistemas de proyección multipantalla .

Configuración del Hardware

Una instalción Boygroup consiste en un Pc servidor dedicado y un numero de clientes conectados via red ethernet. Conexiones Gigabit son por supuesto recomendadas ahora , pero Boygrouping tambien se usaba cuando
100baseT eran casi un articulo de lujo .

La configuración de Boygrouping mas sencilla consiste en un servidor y un cliente , en esta configuración podrias usar incluso el servidor para mostrarse en pantalla completa una de las salidas . Sin embargo ,dependiendo de tus patches y su consumo , quizas no sea la configuración mas adecuada , puesto que el servidor iria mas lento que los clientes al tener que trabajar mas .

Estructura de los directorios

Normalmente es recomendable crear una estructura de directorios como la que se muestra a continuación para un proyecto especifico con vvvv:

 
C:\MYPROJECT\patches C:\MYPROJECT\resources C:\MYPROJECT\vvvv33betaXX

En una configuración de Boygroup es bastante util compartir y tener acceso a traves de la red el directorio \MYPROJECT y mantener la misma estructura en todos los clientes. Date cuenta que los clientes no necesitaran el directorio patches por que reciviran los datos de los nodos magicamente desde el servidor!

Boygrouping no transmite ningun archivo (texturas,videos,effect,archivos..) a traves de la red . Solo información del tipo (values,strings,colors,enums) es mandada automaticamente.

Por eso todos los archivos que pueda usar el servidor deberan de estar accesibles en los clientes . Sincronizar la estructura de directorios del servidor con los clientes puede conseguirse facilmente usando la herramienta simple mirroring tool.

Ajustes en los clientes

La parte de patching de los clientes es muy transparente.En realidad no hay que hacer nada de patching en los clientes .
Lo unico que tienes que hacer es iniciar vvvv.exe en modo cliente con
los /client [ServerIP] commandline parameter asi:

 
vvvv.exe /client 192.168.0.100

siendo 192.168.0.100 la ip del servidor .Puedes verificar si vvvv
esta en modo cliente comprobando la barra de tareas , la pestaña de vvvv deberia poner :CLIENT! 192.168.0.100

Especificando el root-patch

Mientras que haces un patch normlamente especificas la ruta de los archivos necesarios a ruta relativa. Para hacer saber al cliente a que se refiere el servidor con esa ruta relativa , debemos de especificarlo cuando se inicialice el cliente a que rutas relativas se debe de expandir .

 
vvvv.exe /192.168.0.100 C:\MYPROJECT\patches

Inicializando con la ruta de arriba el cliente se expandira a

 ..\resources\textures\mask.jpg

el cual estara accesible exactamente de esta manera.

 C:\MYPROJECT\resources\textures\mask.jpg

Ajustes en el servidor

En el servidor inicializa vvvv con el /server commandline parameter la pestaña de vvvv deberia poner :SERVER! para indicar su modo.

Para decirle al servidor con que clientes a de negociar , crea un nodo Boygroup (VVVV) Server? . En el pin Clientes conecta un spread con las IPs de todos los clientes , normalmente deberias tener un patch parecido a este:

Fijate que los nodos Boygroup' muestran un spreaf de boleanos indicando el estado de conexion de cada cliente individualmente.
Si todo esta bien en unos pocos segundos (<10) despues de inicializarse deberian de verse conectados.

Boygroup Patching

Los nodos azules

En una instancia de vvvv ejecutado en modo servidor el atajo de teclado CTRL+B te permite poner en Boygroup nodos individualmente.
Los nodos que estan en Boygroup se ponen de color azul , esto indica que han sido clonados en los clientes ,incluso si no los ves en el cliente , el calculo se ha realizado igualmente.

Normalmente empezaras haciendo Boygroup a un Renderer.Si te fijas vvvv tambien pondra en Boygroup los nodos vecinso necesarios.Esto es porque los nodos conectados via conexion entre nodos como(transforms, textures, audio, video, layers,...), necesitan ser conectados en la misma parte de la red .Entiendelo tal y como es , de todas formas es automatico y no necesita ningun pensamiento de esfuerzo mas en entenderlo.

Sin embargo , lo que si necesita ser entendido es que nodos deben de ponerse en Boygroup manualmente aparte de los que se ponen automaticamente , para obtener mejores resultados.

No hay una regla general como( "boygroup todo lo que puedas" o "menos boygroup es mejor" ).

En vez de esto se consciente que todos los datos que pasan entre nodos boygrouped (azules) y nodos normales (grises) se manda por la red cada frame ( por supuesto , solo si hay un cambio )

Asi que , deberias tener en consideración este tipo de conexiones
y no cargarlas con grandes spreads sino crea nodos en boygroup que generen estos spreads .

Tambien hay limites en la red que pueden hacer que boygroup deje de transmitir información si mandas una cantidad de datos excesiva .
(Mira el FAQ abajo).

Veamos 3 tipos de scenarios boygroup a lo que puede que te enfrentes mientras haces un patch :.

  • El nodo que manda (gris) existe solo en el servidor mientras que el nodo (azul) esta en el cliente. Cada vez que se cambia el valor se transmite via UDP cada frame. Como UDP no puede garantizar un fluyjo de datos constante o latencia , puede que notes un pequeño delay o corte en la animación de tus objetos. Por eso es una buena practica tener un Damper (Animation) como primer nodo en un cliente .
  • Ambos nodos existen en el cliente . Aqui no hay transmisión de datos. Los nodos en el cliente estan conectados localmente (en los clientes) y los datos se pasan internamente . Asi que obtendras animaciones precisas como normalmente.
  • El nodo que manda (azul) esta en boygroup , mientras el que recibe (gris) no lo esta .Aqui no hay transmisión de datos . En el servidor veras los datos calculados localmente . No es posible conseguir datos de los clientes .

Encontrar que nodos es mejor poner en boygroup lleva algo de practica
pero en general no puedes equivocarte demasiado . Si tus resultados van despacio y regular intenta poner en boygroup diferentes nodos o pon en tu animación un nodo Damper (Animation) en azul .

ID de los Clientes

Hasta el momento todos los clientes realizaran la misma tarea en sincronia , lo cual puede que no sea muy interesante. Imagina a Justin, Lance, JC, Joey and Chris realizando sus movimientos de baile exactatmente en la misma posición en la pista. Mientras que esto podria causar artefactos interesantes , no funcionaria en nuestro mundo limitado a 3 dimensiones . Es por esto por lo que boygroup introduce ClientID esta caracteristica es la unica que nos deja distinguir un cliente de otro y por supuesto la vista en el servidor.

El nodo Boygroup (VVVV) Client? devuelve un ID diferente desde 0 a el numero de clientes -1.
El orden depende del spread de las direcciones ip que introdujiste en el nodo Boygroup (VVVV) Server? . IP en el slice 0 sera ClientID 0 y sai con todos los demas . Si te fijas el nodo ((Boygroup (VVVV)
Client)) devuelve cualquier numero que pongas en el pinServerID y este valor no afecta a los ID de los clientes sencillamente simula a los clientes en el servidor .

Para un ejemplo sencillo mira

 girlpower\takethat.v4p. 

Alli veras el nodo Boygroup (VVVV) Client? en acción.
El ejemplo es usado para poner la camara en un offset diferente en cada cliente.

Pantalla Completa en los clientes

En bogroup estandar querras seguir patcheando en el servidor mientras que los clientes estan a pantalla completa .
Por lo tanto querras los pines Fullscreen de los Renderers en 1 en los clientes y 0 en el servidor.Recuerda que la unica manera de distinguir el servidor de los clientes es el ClientID.
Dependiendo de esto puedes hacer algo como lo que se muestra acontinuación para tener el renderer del servidor en modo ventana y los clientes en pantalla completa .

Sincronizando la reproducción de un video.

MIra tonfilm-VideoSync?

Control Remoto

Cuando tienes que manipular un gran numero de clientes suele ser util
iniciar y cerrar vvvv.exe en todos los clientes con un solo click en el servidor . Esto se puede conseguir con el nodo Remote Shell

 RSh (Network) .

Para que esto funcione los clientes necesitan tener instalado remote shell daemon .Mira rshd.

WakeOnLAN

A traves de la caracteristica de las placas base WakeOnLAN puedes decirle a los clientes que se enciendad una vez encendido el servidor . Mira tonfilm-WOLandShutdown?.

Limitaciones

Fullscreen Monitor

Por ahora todos los renderers en boygroup se muestran en el escritorio en la posición 0/0 independientemente de su posición en el servidor .
Las coordenadas del escritorio 0/0 suelen ser la esquina izuierda de arriba en el primer monitor de tu tarjeta grafica. Asi que por el momento no hay una solución sencila para decidir en que monitor un renderer hace fullscreen en u ncliente.

SubDirectorios

Se recomienda no usar subdirectorios en el directorio de los patches del servidor para crear jerarquias en tus patches , por que esto puede causar problemas con los paths relativos para encontrar recursos en los clientes .

FAQ

Por que no funciona CTRL-B?

Este atajo solo funiona en modo servidor . Inicia vvvv con el parametro /server para activar boygroup.

VVVV esta en modo servidor pero CTRL-B igue sin funcionar ?

Hechale un vistazo a Renderer (TTY).Probablemente te diga el porque no puede realizar la operación .
Normalmente puede ser por que estes en un subpatch o algo realcionado con los nodos Send/Receive .
Que no entre el panico , se puede encontrar una solición para estas situaciones.

Parece que algunos datos se pierden entre el servidor y el cliente?

Intenta bajar el spreadcounts, puede que hayas excedido el limite de tu red .
MTU-size

Que puertos de la red usa boygroup?

VVVV establece una conexion TCP en el puerto 3333 en cada cliente para transmitir todos los cambios graficos . Todos los cambios de valor se mandan con UDP por el puerto 3333.En el nodo Boygroup (VVVV) Server? puedes cambiar en teoria que los valores broadcast se manden via TCP en vez de UDP lo cual no tiene mucho sentido .
Mas util seria la opción Quiet que desconecta hacer broadcast en todos los cambios de valor .

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/

~9d ago

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

~11d ago

~13d ago

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

~16d ago

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

~16d ago

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

~23d ago

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

~30d ago

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

~30d ago