» О спредах и слайсах
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

joreg: the 2018 numbers are in: vvvv-in-numbers-2018 #vvvv

~1d ago

microdee: There was a problem with DX11’s VPM pack, now I switched everything depending on DX11 to the contrib zip file. It should work now.

~1d ago

unti: Please remove Hauppauge from the list of supported videoIn cards. They still don't seem to work with vvvv.

~2d ago

Lorenz: What if screens could be shaped into any form? screenization-experiment-materiality

~4d ago

joreg: @bo27 one cross each!

~4d ago

bo27: @joreg should I answer again? :))

~5d ago

joreg: ~200 answers to the survvvvey so far. Can we double this? Please remind your friends/collegues to fill out: https://t.co/gHvameecfn #vvvv

~6d ago

gegenlicht: The "im not a robot" login dialog just gave me a minor existential crisis.

~7d ago

tonfilm: @schlonzo dark theme is not released yet, you have to wait a bit for the vvvv gamma release...