» it.Tutorial Spreads
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

it.Tutorial Spreads

English | French | Russian | Spanish | Japanese | Korean | Mandarin

Il tutorial che segue prevede che tu abbia fatto pratica col tutorial 2: Herr Inspektor L'integerrimo Ispettore.

Eh, sei nella lista? Eh, se non sei in lista non puoi entrare...

Più in basso ci si riferirà agli Spreads come ad una lista di dati; anche propagazione di dati rende molto bene l'idea. In ogni caso gli spreads sono fondamentali, e la loro esatta comprensione supercalifragilistichespiralidoserà le tue patches.

In quasi tutti i casi in cui in cui vorrai gestire più istanze di dati, che siano colori, valori, files, textures o geometrie, pensare in termini di spreads semplificherà la gestione della tua patch e ti farà ottenere risultati spettacolari.

Uno Spread di Slices

Semplificando, per iniziare potremmo dire che con spread si indica né più né meno che una lista. Una lista di dati arbitrari, che siano valori, stringhe, colori, ecc. Un singolo dato di questa lista viene chiamato Slice.

Sai già che attraverso un pin di un nodo si possono gestire determinati tipi di dati (valori, stringhe, colori, enumeratori, nodi). Quello che non è stato ancora detto è che ogni pin non gestisce necessariamente solo un'istanza del dato cui si riferisce, ma potenzialmente trasporta, trasmette un'intera lista di dati, "a whole spread of data"

Generatori di Spread

Puoi scoprire il numero di slices di un pin spostandoci sopra il cursore del mouse. Genera un nodo LinearSpread (Spreads) e sposta il cursore sopra sopra il pin di output. Niente di particolare. Setta il pin SpreadCount del nodo a 5 e sposta di nuovo il cursore sul pin di output: dopo il valore appare un (5).

Così il suggerimento ti dice che ci sono 5 slices , ma te ne mostra solo una. Ti sta facendo un favore, perché se invece che di 5, disponesse di 10.000 (o anche mmmillemila) slices, non vorresti mai che te le elencasse tutte. Ma c'è un modo per controllare queste slices. Nel tutorial precedente è stato mostrato come cliccando sulle freccette della colonna centrale dell'Ispettore (tra il valore del pin ed il suo nome), dopo aver selezionato il nodo che ci interessa, si possono osservare tutte le slices di uno spread.

Assieme al nodo LinearSpread (Spreads) ci sono molti altri nodi che possono generare spreads. Se vuoi, consulta HelpPatches a proposito dei nodi CircularSpread (Spreads), RandomSpread (Spreads) e I (Spreads). Poi torna qui, però.

Usare gli Spreads

Ragionaci sopra. C'è un pin che trasporta uno spread di 5 slices, come reagisce un nodo se lo spread è collegato ad uno dei suoi input pins? Per vedere cosa succede, genera un nodo Renderer (GDI) ed un nodo Point (GDI) che connetterai al renderer. Il risultato è un + al centro del nodo Renderer (GDI) (oppure nel punto che corrisponde alle coordinate "X" ed "Y" inserite negli input pins del nodo Point (GDI). Ora connetti l'output pin del nodo LinearSpread (Spreads) allo X input del nodo Point (GDI).

Quello che vedi è l'intelligente nodo Point (GDI) che gestisce uno spread. Semplicemente disegna i suoi + non una volta sola, ma cinque, dato che riceve una lista di cinque coordinate in base alle quali disegnare. Ovvio, eh? Se tu fossi stato un punto, che avresti fatto? E cosa avresti fatto se fossi stato connesso/a ad un altro spread con un altro valore inserito in un altro pin?
Duplica (Ctrl+D) il nodo LinearSpread (Spreads), imposta il suo SpreadCount pin a 2, connettilo allo Y input pin del nodo Point (GDI) ed osserva quello che succede.

Hai capito? Il nodo Point (GDI) riceve 5 valori nello X input pin e 2 valori nell'Y input pin. Ecco come si comporta:

  • quando disegna il primo + prende in considerazione la prima slice dello X pin e la prima dello Y pin
  • quando disegna il secondo + prende in considerazione la seconda slice dello X pin e la seconda dello Y pin
  • quando disegna il terzo + prende in considerazione la terza slice dello X pin e , siccome non c'è nessuna terza slice nello Y pin, torna ad usare la prima slice
  • ...

Tutto qui. Questo è il modo in cui ogni nodo si rapporta con gli spreads attraverso i suoi input pins. Sempre che l'input pin accetti gli spreads. Se non lo fa, scarta tutte le slices ad eccezione della prima. Per capire se un input pin accetti o meno outputs dagli spreads, controllalo nell'Ispettore: se prima del suo nome trovi questo ">" o questo ">>" significa che li accetta.

Non fa mai male guardarsi questo video tutorial sugli spreads.

Accedere ad una singola Slice

Se tutto va per il verso giusto, nella maggior parte dei casi non dovrai gestire singole slices, dato che quasi ogni nodo può rapportarsi con gli spreads. Naturalmente ci sono però delle buone ragioni per accedere ad una singola slice. Supponiamo che ci sia questa necessità, e che il nostro obiettivo sia gestire manualmente la terza slice che viene fuori dal primo LinearSpread (Spreads). Quindi inseriamo nella patch un nodo SetSlice (Spreads) come mostrato sotto.

L'input alla destra estrema del nodo SetSlice (Spreads) segnala al nodo quale slice vogliamo modificare. Siccome le slices sono numerate a partire dallo 0 (zero), se vogliamo modificare la terza dobbiamo inserire un 2. Il secondo input pin del nodo SetSlice (Spreads) è il nuovo valore che vogliamo assegnare alla terza slice. Modifica quel valore e vedrai il terzo + muoversi indipendentemente dagli altri.

Penserai che questo sia abbastanza ganzo, ma dai un'occhiata a questo:

Attraverso il nodo I (Spreads) diciamo al nodo SetSlice (Spreads) che vogliamo gestire non solo la terza slice, ma tutte quelle che vanno dalla prima alla terza. Con un altro nodo LinearSpread (Spreads) generiamo questi tre valori....

E così via. Ora ogni volta che penserai che ci sarà un problema uno spread verrà in tuo soccorso.

Ulteriori esperimenti

A questo punto potrebbe essere interessante aprire le helppatches
dei nodi: GetSlice (Spreads), Stallone (Spreads), Queue (Spreads) e Cons (Spreads).

La serie dei tutorials prosegue spiegando alcune cose che dovresti sapere sugli IOBoxes.

anonymous user login

Shoutbox

~7d ago

joreg: Postponed: Next vvvv beginner course starting April 29: https://thenodeinstitute.org/courses/vvvv-beginner-class-summer-2024/

~1mth ago

~1mth ago

joreg: The Winter Season of vvvv workshops is now over but all recordings are still available for purchase: https://thenodeinstitute.org/ws23-vvvv-intermediates/

~1mth ago

schlonzo: Love the new drag and drop functionality for links in latest previews!

~2mth ago

joreg: Workshop on 29 02: Create Sequencers and Precise Clock Based Tools. Signup here: https://thenodeinstitute.org/courses/ws23-vvvv-08-create-sequencers-and-precise-clock-based-tools-in-vvvv-gamma/

~2mth ago

joreg: Workshop on 22 02: Unlocking Shader Artistry: A Journey through ‘The Book of Shaders’ with FUSE. Signup here: https://thenodeinstitute.org/courses/ws23-vvvv-12-book-of-shaders/