» fr.Créer des Feedback Loops
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

fr.Créer des Feedback Loops

English | Russian | Italian

Si vvvv ne vous autorise pas à créer une connexion entre deux pins qui partagent le même type de données, c’est très certainement parce que ce lien créerait une boule dans le graph.

Une boucle n’est pas une connexion valide !

La solution

Insérez une node FrameDelay (Animation) (ou une autre correspondant au type nécessaire) dans la boucle pour pouvoir la fermer. Framedelay va casser cette boucle, du fait que sa sortie ne dépendra plus de sa valeur d’entrée à la même frame, mais à la frame précédente.

Pour comprendre

Ici, vous trouverez deux façons d’envisager une boucle dans le graph :

Variable locale
Afin de conserver le résultat d’un calcul d’une frame pour le réutiliser dans ce même calcul à la frame suivante, vous devrez utiliser FrameDelay. En assignant une valeur à son entrée, vous créez une variable locale que vous pourrez lire à la frame suivante sur sa sortie.

Ordre d’exécution
vvvv n’a pas de notion d’ordre d’exécution. Tous les évènements du graph ont lieu en même temps, une fois par frame. L’évaluation de chaque frame commence aux sinks (Renderers, Writers) qui nécessitent que leurs entrées soient mises à jour avant de pouvoir calculer leur résultat. Ainsi, vvvv remonte le graph de sink en sink jusqu’à trouver une node dont aucune pin d'entrée n'est connectée. Cette node peut fournir un résultat instantanément, qu’elle « transmet » aux nodes connectées à sa sortie. Celles-ci peuvent donc calculer leur résultat, et ainsi de suite… sans qu’au final vous n’ayez besoin de vous occuper de tout ça.

Bien que la plupart du temps cela soit très simple, un certain cas mérite votre attention : si vous patchiez une boucle, aucune node ne pourrait calculer ses résultats, vu que toutes les nodes d’une boucle dépendent des nodes en amont.

Tout ceci ressemble fortement au grand classique du crash général et de l’écran bleu de la mort. Cependant, il existe une solution assez simple : à un endroit de la boucle, nous devons extraire la valeur de la frame précédente.

vvvv vous évite ce genre de boucles en vous interdisant de créer ce genre de connexions.

anonymous user login

Shoutbox

~41min ago

sunep: MAX 8.0 now with spreads... kind of: https://youtu.be/DP73qxCoCqQ?t=1m28s

~2h ago

io: A vvvvery vvvvriendly vvvvestival, ed. 2018 http://keroxen.com/

~1d ago

microdee: @synth: use beta37 for Notuiv and install it with vpm. this article describes why md.ecosystem-update

~1d ago

mburk: @synth Check github for superphysical Beta37. Deferred+Forward Branch.

~2d ago

synth: Getting red nodes on VL stuff, mostly SuperPhysical, Notuiv and CraftLie. Only me or there is something broken?

~2d ago

joreg: reminder: we'll do a #vvvv #vl workshop as part of #retune18 in #berlin this friday: vvvvvl-workshop-at-retune-2018 #visualprogramming #dotnet

~6d ago

tonfilm: how about debugging your #dx11 #GPU frames? debug-dx11-frames-with-nvidia-nsight

~8d ago

mrboni: Anyone know where I can get an Etherdream ILDA unit in the UK / West Europe delivery this week?https://ether-dream.com/

~9d ago

tobyk: @catweasel Re:KiNet yes, its pretty similar to artnet but with some different magic numbers. I can send you what I've used before.