» О спредах и слайсах
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

О спредах и слайсах

English | Mandarin | 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 может одновременно обрабатывать большое количество объектов, будь то графические объекты или данные, без особых усилий со стороны пользователя. Строго говоря, нет никакой разницы, работать с одним значением или с сотнями значений, так же как нет разницы рисовать один объект или кучу объектов. Это называется спрединг. В каком-то смысле, это аналог концепции векторов, массивов или списков в других языках программирования, но без типичных сложностей, связанных с этими конструкциями.

В принципе, любые пины и связи могут содержать любое количество значений. В подсказке показывается только первый из них. Если в пине больше одного значения, то в скобках после значения показывается количество этих значений. Это называется SliceCount, количество слайсов:

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

Основной особенностью vvvv является то, что ноды рендеров так же понимают спреды: если применить спред к объекту рендера, объект будет отрисован несколько раз. Это значительно упрощает программирование сложной анимации частиц.

Взаимодействие спредов с разным количеством слайсов

Можно без проблем соединять спреды с разным количеством слайсов:

Если в выходе больше слайсов, чем во входе, vvvv просто повторяет недостающие слайсы (на скриншоте слева). Если в выходе меньше слайсов, то лишние слайсы входа просто игнорируются (на скриншоте в центре). Если в выходе несколько слайсов, а во входе только один - все слайсы выхода будут одинаковыми (на скриншоте справа; это просто особый случай первого примера)

Те же правила действуют, когда к двум разным входам нода применяются спреды с разным количеством слайсов:

В спреде слева больше слайсов, чем в спреде справа. Для простых вычислительных операций (например +), размер выходного спреда равен размеру максимального спреда из входящих.

Чтобы быть точным, правило звучит не совсем так, дело не только в максимальном количестве слайсов, но и в приоритетной обработке пустых спредов Пустые спреды. Полное правило звучит так: “Если не один из входящих спредов не является пустым, то к выходу применяется максимальный размер спреда из всех входящих; если в одном из входов есть пустой спред, то выход так же будет пустым”.
Заметим, что это условная стратегия: другие языки, такие как APL или J, ограничивают или запрещают подобные случаи, но мы чувствовали, что это важный момент для дальнейших разработок, поэтому оставили решения для этих случаев. Мы обсуждали и другие возможные стратегии, например, применять общее кратное или минимальное количество слайсов, но остановились на описанном выше методе, как наиболее продуктивном и позволяющем использовать сочетания спредов из одного слайса с большими спредами, просто и без дополнительных исключений.

Поэтому правый вход повторяется внутри нода, пока так же не будет иметь семь слайсов. Спред с меньшим количеством слайсов всегда повторяется, пока не выравняется с большим:

Это же правило применяется и к нодам рендеров:

Поскольку наибольший из входящих спредов состоит из восьми слайсов, здесь нарисовано восемь объектов. В пине Type только три слайса, поэтому три разных фигуры повторяются восемь раз. Цвет задан только один, поэтому все объекты одного цвета. Очень полезно работать в таком ключе, потому что можно простыми патчами создавать очень сложные конструкции и модели. Это можно считать хорошим занятием.

Спреды в Инспекторе

По умолчанию Инспектор показывает значение только первого слайса из спреда. Если вы хотите увидеть все слайсы, щелкните на иконке двойной стрелки >>, в средней колонке. В колонке справа появится список всех слайсов в спреде соответсвтующего пина.

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

Если пин не подключен, все слайсы будут светло-серыми и вы можете их редактировать так же, как обычно. В строке slices of PinName, над списком слайсов, вы можете установить нужное количество слайсов.

anonymous user login

Shoutbox

~11h ago

tonfilm: to whom it may concern: 64-bit #vvvv #alpha builds are up an running again: downloads/alphas

~2d ago

StiX: @synth you sauin something about 420? if mangosh gets confirmed i am coming with him as we are in one ... package

~2d ago

synth: @evvvvil here only to do lasers, they don't let me near the screens after last time ...

~2d ago

evvvvil: hahaha yes, please sir, can I have some more sir? Hopefully me and you be battling for visual space soon, GTFOH with your lasers.

~2d ago

synth: BTW - Got 4 20w Kvant lasers here thinking of testing the ILDA nodes live :)

~2d ago

synth: @evvvvil Hell yeah! Couldn't get Vux drunk but your going to get it :D

~2d ago

evvvvil: @synth: hopefully I should be going to GEM FEST soon, not confirmed yet, but if so, beer is on you why not ;) (and me ok)

~3d ago

synth: BTW any vvvv guy coming to Georgia for GEM Festival shout out I am here for the entire thing alone. Some beer on me ;)