» Создание циклов
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

Создание циклов

English | Italian | French

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.

Почему я не могу соединить два пина одинакового типа?

Скорее всего потому, что это создаст цикл в патче.

Идея циклов (одна из основ кибернетики) это очень мощный инструмент, но при создании патчей вы должны учитывать, что: vvvv обсчитывает все ноды в патче только один раз в конкретный момент времени

Это позволяет значительно упростить логику построения и отладку патчей, поскольку все события в патче происходят одновременно. Здесь нет заданного порядка выполнения (в отличие от таких графических языков, как Max или PD). Все расчеты выполняются автоматически в нужной последовательности, так что вам не нужно думать об этом. Кроме того, обычно ноды не задерживают передачу данных (как в цифровой электронике). Вам не надо беспокоиться, что данные придут не вовремя.

Хотя все это весьма полезная теория, есть один момент, на котором нам нужно остановиться. Когда вы прописываете цикл, выход не может быть посчитан до тех пор, пока не известен вход, но так же не возможно посчитать вход, пока не известен выход.

Хотя это звучит как классический парадокс, приводящий к зависанию компьютера и появлению синего экрана, решение очень простое: в каком-то месте цикла, нам нужно запомнить значение предыдущего момента времени.
Так мы избегаем бесконечного заведения данных самих в себя. Помните, что очень важна позиция где именно мы храним здачение предыдущего момента, и малейшие изменения здесь существенно влияют на поведение всего цикла.

Поэтому, каждый раз, когда вы проводите новую связь, vvvv проверяет возможность ситуации в один и тот же момент времени входные данные нода зависят от выходных данных этого же нода. Если это так, vvvv не позволяет делать такие связи. VVVV не знает откуда взять значение предыдущего момента.

Но как тогда делать циклы?

Очень просто: такие ноды как FrameDelay (Animation)позволяют выходу не зависеть от входа в тот же момент времени, потому что вход предыдущего значения - это то, что допускается без проблем. Как только вы добавляете такой нод в цикл (некоторые другие ноды так же обладают этим свойством), вы можете замыкать цикл.

Сложно сказать, где именно должна находиться задержка - это зависит, в первую очередь, от логики патча. Когда вы выстраиваете логику, необходимое место для задержки почти всегда находится интуитивно.

Циклы это очень сильный инструмент, потому что это не только отличный способ хранить изменяющиеся во времени значения, но и счетчики, повторяющиеся вычисления и анимация - так что подружитесь с ними.

При создании циклов с использованием нода FrameDelay (Animation) крайне важно избегать пустых спредов Empty Spreads...
Если при возникновении проблем при сохранении или открытии патчей, вы обнаружите, что один или несколько модулей, задействованных в цикле, выдают пустое значение, следует поместить модуль ReplaceEmpty после FrameDelay (Animation).

anonymous user login

Shoutbox

~5d ago

mediadog: @tonfilm Thanks! Need to kill a specific vvvv instance, so that enables "taskkill /FI "WINDOWTITLE eq (title)"

~6d ago

tonfilm: @mediadog you can use the VVVV (VVVV) node for that

~7d ago

mediadog: Wasn't there a commandline switch to set the window title instead of the random characters? Can't find it

~8d ago

synth: @tonfilm Awesome, thanks!

~8d ago

tonfilm: @synth yes, if you have a valid ticket for #node20 you will have access to all workshops and their recordings: https://20.nodeforum.org/tickets/

~8d ago

synth: Is there a recording of the Procedural Graphics , and can one buy it somewhere?

~10d ago

david: And finally.... Realtime graphics with Stride 3D – The Fundamentals with the developers https://tinyurl.com/y4utxhyv

~10d ago

david: @sebescudie teaches us: Machine Learning with RunwayML and vvvv. https://tinyurl.com/y66zn3h7

~10d ago

david: node20 workshop series.. @baxtan_ will be teaching you everything about Generative Design Algorithms https://tinyurl.com/yxck9vy7

~11d ago

ain: had anyone positive result with VL.NewAudio in latest gamma? cant' get it running