» Ударим Спредом по бездорожью
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

Ударим Спредом по бездорожью

English | French | Japanese | Italian | Korean | Mandarin

Этот урок подразумевает, что вы выполнили упражнения из урока 4: Подробнее об IOBoxes.

Повторение - мать учения!

Теперь, когда мы разобрались с IOBoxes, пришло время еще раз взглянуть на то, как можно работать со спредами.

Эти два примера показывают нам, как интерпретируются значения двух спредов с разным количеством слайсов. Обратите внимание что в первых двух и последних двух результат оказался одинаковым, несмотря на разные входные данные.

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

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

  • И правда все очень просто.

Давайте просто взглянем на следующие примеры. Все должно встать на свои места.

Удобство использования нескольких спредов

Предположим, вам понадобился RoundRect (GDI), линейно распределенный по оси X, и теперь вы хотите, чтобы квадраты были поочередно зеленого и красного цвета.

А теперь попробуем сделать сетку из 25 квадратов 5х5? Первое что приходит в голову, просто подцепить еще один LinearSpread (Spreads) ко входу Y на RoundRect (GDI). Но вот что получится:

RoundRect (GDI) по-прежнему рисует себя только 5 раз. Это проиходит потому что максимальное количество слайсов в спреде = 5. Слайсы по оси X совпадают со слайсами по оси Y.

Благо в vvvv уже есть нод, специально написанный для создания сетчатых структур. Поставьте Cross (2D) так же, как показано на скриншоте.

Cross (2D) генерирует все возможные сочетания входных слайсов и выдает по 25 слайсов для осей X и Y. Обратите внимание, что расстояние между квадратами можно регулировать вторым входом в LinearSpread (Spreads).

В заключение давайте снова добавим немного интерактива. Скажем, мы хотим знать расстояние от каждого квадрата до курсора мышки. И снова находится нод для подобных вещей: Points2Vector (2D) считает расстояние между 2 точками. Соедините ноды как показано ниже и подумайте, чо означают эти 25 цифр в нижнем справа IOBox.

Верно. Points2Vector (2D) показывает нам расстояние от курсора для всех 25 квадратов. Теперь масштабируем эти расстояния до разумных размеров и привязываем к размеру RoundRect (GDI). Это и называется мультимедиа.

Теперь увеличьте количество слайсов в LinearSpread (Spreads) и вы все поймете. Не важно, сколько у вас объектов на экране - патч остается таким же простым как в самом начале.

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

anonymous user login

Shoutbox

~9min ago

joreg: @Tamoeba odd if so. so you don't have an LFO or MonoFlop node

~21h ago

sagishi: any vvvv wizardry going on at ADAF in athens this week?

~21h ago

vux: Freshly released, DirectX11 v1.3 directx11-1.3-update

~2d ago

weareallclowns: has anyone used avr-gcc with vvvv? thinking about uploading a vvvv sketch to arduino

~3d ago

motzi: @udo2013: you can't change the resolution of the standard DX11 renderer (res=window size). use temptarget renderer + preview instead

~3d ago

Tamoeba Kale: Is it possible that i am missing thew whole "animation" category nodes? how?

~4d ago

udo2013: hello. is there a way to change the fullscreen resolution of renderer dx11? found no possibility + can not be opened.

~4d ago

tekcor: @joreg vl.glTF loader looks intense inside, but is red in b36.

~5d ago

MultiNIL: @joreg sure!

~5d ago

joreg: @MultiNIL supa! can we have this as a gallery entry? 24