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

~14h ago

metrowave: @marlonossiliere, Win10 is fine, also see: best practices when using bootcamp

~23h ago

marlonossiliere: I have a Macbook pro mid 11, 13 inches, what windows is the best for bootcamp installation?

~2d ago

joreg: your 2017 numbers have landed: vvvv-in-numbers-2017 #vvvv #vl

~3d ago

joreg: final part of "vl for vvvv users" series of video tutorials is now up: https://discourse.vvvv.org/t/vl-for-vvvv-users-spread-of-spread-5-5/16028 #vvvv #vl

~4d ago

joreg: another one for the weekend: part 4/5 of: vvvv for vl users. all about loops: https://discourse.vvvv.org/t/vl-for-vvvv-users-spreads-vs-spreading-pt-2-4-5/16027 #vvvv #vl

~5d ago

joreg: one for the weekend: rc3 for beta36 is out: beta36-release-candidate #vvvv #vl

~5d ago

fibo: Wine v3 has Direct11 support https://www.winehq.org/news/2018011801