Potete scaricare direttamente i miei due tutorials d'introduzione ai Geometry Nodes in Blender 2.9 (video con audio in Italiano) cliccando sul link seguente:


  

Salve a tutti!

Questo è il secondo di due videotutorials introduttivi sul modificatore Geometry Nodes in Blender 2.92.

Nel tutorial precedente abbiamo esaminato i nodi del gruppo Geometry (ossia Transform e Join, per modificare e fondere le geometrie all'interno del modificatore); la possibilità di creare porte di ingresso per Group Input (in modo da specificare dei parametri nella scheda del modificatore) e l'utilizzo di qualche nodo di Vector e di Utilities (Math, in particolare) per effettuare operazioni matematiche e combinare tra loro le informazioni.

In questo video vedremo un utilizzo diverso dei Geometry Nodes, in quanto li utilizzeremo come sistemi particellari di “scattering”, ovvero di distribuzione di istanze di oggetti sulla superficie di altri; comunque, tutti gli argomenti trattati nel primo videotutorial di questa mini-serie ci torneranno utili qui.

B3D Geometry Nodes 2 of 2 01

Il modificatore Geometry Nodes ci consente di trasformare la geometria dell'oggetto che lo utilizza in un generatore di punti, che verranno distribuiti sulla sua superficie (ovvero: sulle sue facce).

Questi punti potranno essere utilizzati per disporre, in loro corrispondenza, istanze di altri oggetti; non solo: Geometry Nodes ci consente anche di assegnare delle trasformazioni (di posizione, rotazione e ridimensionamento) a ciascuno di questi punti, così da introdurre della casualità.

Nel farvi l'elenco di queste operazioni ho detto, in particolare, tre cose:

  1. trasformare la geometria in un insieme di punti DISTRIBUITI sulla superficie;

  2. ISTANZIARE degli oggetti in quei punti;

  3. modificare le caratteristiche (ovvero: gli ATTRIBUTI) dei punti generati e influenzare, così, le istanze create.

Queste tre operazioni si traducono in altrettanti nodi di Geometry Nodes, che vediamo subito.

Nella scena visibile a video è presente un semplicissimo Plane di default (di appena 4 vertici e una faccia, quindi); inoltre, mediante APPEND ho importato i modelli 3D di alcuni ciottoli (i “Pebbles”), di una pietra (“Stone 1”) e di un oggetto contenente dei fili d'erba.

Per comodità, sto raggruppando i ciottoli in una Collection e sto nascondendo tutti questi elementi accessori, disattivandone la visualizzazione in un editor Outliner.

B3D Geometry Nodes 2 of 2 02

Gli iscritti all'Associazione Blender Italia possono scaricare gratuitamente questi Assets dal link presente nella descrizione di questo video; ad ogni modo, come nel caso dell'orologio nel video precedente, NON è necessario procurarsi questi modelli per seguire il video ed imparare!

Seleziono il Plane e aggiungo un modificatore Geometry Nodes all'oggetto.

B3D Geometry Nodes 2 of 2 03

Per effettuare la prima operazione, ossia la trasformazione del piano in un insieme di punti DISTRIBUITI sulla sua superficie, aggiungo un nodo Point DISTRIBUTE nel bel mezzo del gruppo.

B3D Geometry Nodes 2 of 2 04

A video possiamo notare che il Plane è sparito, sostituito da un insieme di punti... beh, in realtà quell'informazione di partenza non è andata perduta, anzi è ancora lì: la modellazione non distruttiva dei Geometry Nodes ci consente infatti di aggiungere un nodo Geometry Join tra Point Distribute e Group Output e di collegare, ad uno dei due ingressi di Join, la geometria in arrivo da Geometry Input (ovvero: il Plane originale).

B3D Geometry Nodes 2 of 2 05

In questo modo abbiamo a disposizione sia il Plane originale (che potremo modificare e texturizzare, ad esempio per dargli l'aspetto di un terreno), sia i punti distributi sulla sua superficie.

Il nodo Point Distribute mette a disposizione alcuni parametri, tra i quali spicca Density, che ci consente di aumentare o diminuire, intuitivamente, la quantità di punti da distribuire sulla superficie.

B3D Geometry Nodes 2 of 2 06

Nel videotutorial precedente abbiamo visto come collegare un'informazione di un nodo a Group Input, così da poter modificare i valori nell'interfaccia del modificatore; può avere senso fare questa operazione per il parametro Density di Point Distribute.

Passiamo quindi alla seconda operazione delle tre elencate in precedenza, ossia ISTANZIARE un altro oggetto (o una Collection di oggetti), ponendo una copia per ogni punto creato da Point Distribute: inseriamo quindi un nodo Point INSTANCE tra Point Distribute e Join.

B3D Geometry Nodes 2 of 2 07

Il senso dell'operazione è chiaro: Distribute genera i punti e Instance prende le informazioni di questi punti per creare copie di un altro oggetto... già, ma quale oggetto?

Nel nodo Point Instance è presente un selettore che ci consente di definire se vogliamo instanziare un singolo oggetto di scena o una Collection di oggetti; effettuata questa scelta (Object, nel mio caso), possiamo cliccare sulla casella vuota situata all'interno del nodo e scegliere l'oggetto che ci interessa (“Stone 1”, nel mio caso).

B3D Geometry Nodes 2 of 2 08

NOTA IMPORTANTE: per un risultato corretto, assicuratevi di aver applicato le trasformazioni di Rotazione e di Scala degli oggetti che volete instanziare; potete effettuare questa operazione selezionandoli e premendo CTRL A, per poi scegliere “Rotation and Scale” dal menù Apply che apparirà a video.

Regoliamo quindi il parametro Density di Point Distribute, a piacere, fino ad arrivare ad un risultato che ci va bene.

B3D Geometry Nodes 2 of 2 09

La terza operazione fondamentale da fare consiste nel modificare i parametri dei vari punti (e, quindi, delle istanze generate); in realtà, qui è possibile effettuare diversi tipi di operazioni, per cui non parliamo di un singolo nodo ma dei nodi dei gruppi Point e Attribute.

In entrambi i casi, i nodi di trasformazione andranno inseriti tra Point Distribute e Point Instance, perché dovranno modificare I PUNTI creati, PRIMA di generare le istanze a partire da quei punti.

Iniziamo ad esempio dalla rotazione, da applicare a tutti i punti: aggiungiamo quindi un nodo Point Rotate tra Point Distribute e Point Instance e modifichiamo gli angoli di rotazione delle particelle.

B3D Geometry Nodes 2 of 2 10

Il risultato è già migliore di quello ottenuto senza questo nodo, ma come fare per introdurre della casualità alla rotazione e, perché no, anche alla dimensione di queste istanze?

Ci viene in aiuto il nodo Attribute Randomize (da “Random”, “casuale”), che possiamo porre in cascata tra Point Rotate e Point Instance (infatti questo flusso di elaborazione avviene sempre sulle geometrie, come è possibile verificare osservando le porte Geometry collegate tra i vari nodi).

B3D Geometry Nodes 2 of 2 11

Attribute Randomize è un nodo che ci consente di introdurre della casualità su un ATTRIBUTO dei punti, da specificare appunto nel campo “Attribute” del nodo.

Tra gli attributi fondamentali di una particella abbiamo, neanche a dirlo, “rotation” e “scale”, per cui iniziamo scrivendo “rotation” in questo campo e modifichiamo il valore Max...

B3D Geometry Nodes 2 of 2 12

Il nodo introduce in effetti della casualità nell'orientamento delle particelle, ma queste ruotano intorno a tutti i loro assi, il che non è esattamente un risultato interessante: vorremmo infatti mantenere l'orientamento base dato da Point Rotate e ruotare le istanze in maniera casuale solo intorno all'asse verticale.

Per risolvere questo problema, dobbiamo cambiare il tipo di valore dell'operazione da Float (valore numerico con virgola, che agisce in maniera uniforme sui tre assi XYZ) in Vector, dove potremo mettere 0.0 per tutti i valori tranne che per il MAX dell'asse che ci interessa modificare...

B3D Geometry Nodes 2 of 2 13

… ma anche questa operazione porta con sé un problema: abbiamo perso la rotazione data da Point Rotate!

B3D Geometry Nodes 2 of 2 14

Si tratta di un problema di “priorità”, in un certo senso: tra Point Distribute e Point Instance, infatti, dobbiamo mettere prima Attribute Randomize e poi Point Rotate.

B3D Geometry Nodes 2 of 2 15

Duplichiamo ora Attribute Randomize e aggiungiamolo tra l'originale e Point Rotate per modificare anche il parametro Scale (da scrivere, proprio come “rotation”, interamente in minuscolo, altrimenti Blender non lo riconoscerà).

B3D Geometry Nodes 2 of 2 16

In questo caso, però, dovremo modificare tutti i parametri min e max XYZ, per ottenere risultati interessanti (e magari evitare di mettere 0.0 per i valori minimi, altrimenti gli oggetti perderanno una o più dimensioni).

Con scale potrebbe venirvi più comodo ritornare al tipo Float, in modo da utilizzare un solo parametro per il fattore di scala minimo e uno solo per il massimo... a voi la scelta.

Già con questi due nodi Attribute, comunque, stiamo ottenendo una certa diversità da un oggetto che, lo ricordo, era costituto da una sola geometria: “Stone 1”; se poi cambiamo il tipo di oggetto da instanziare in “Point Instance” da “Object” a “Collection” e specifichiamo la collezione dei ciottoli, le cose diventano decisamente più interessanti!

B3D Geometry Nodes 2 of 2 17

Impostiamo nuovamente “Object” con “Stone 1” in Point Instance, comunque, per esaminare un'altra funzionalità disponibile con i Geometry Nodes.

Nei sistemi particellari classici possiamo definire anche su quali parti della geometria creare le particelle e su quali no; lo si fa, in particolare, con il Weight Painting, definendo dei valori di densità (da 0 a 1) sulle varie parti di una superficie... beh, possiamo farlo anche qui!

Prima di procedere, comunque, dobbiamo aumentare il numero di suddivisioni del Plane, perché il Weight Painting (da operare al di fuori del Geometry Node, sulla geometria originale) agisce sui vertici, quindi i 4 vertici di base del Plane non sono sufficienti.

In una vista 3D, quindi passiamo in Edit Mode e suddividiamo l'intera superficie per un buon numero di volte, dopodiché passiamo in modalità Weight Paint.

B3D Geometry Nodes 2 of 2 18

B3D Geometry Nodes 2 of 2 19

Di default, la superficie dovrebbe apparire blu, ossia “peso 0”; il nodo Point Distribute creerà i punti sulle aree con peso 1, quindi dobbiamo dipingere nelle aree sulle quali vogliamo far apparire le istanze.

B3D Geometry Nodes 2 of 2 20

NOTA: se volete applicare le istanze ovunque tranne che in particolari punti, dovete procedere al contrario; in questo caso, in particolare, passiamo il pennello nelle aree che vogliamo ESCLUDERE da Point Distribute (e Blender creerà automaticamente un Vertex Group, che dovrebbe avere nome di default “Group” ma che possiamo anche rinominare in qualcosa di più significativo, come ad esempio “Pebbles”).

B3D Geometry Nodes 2 of 2 21

Al termine dell'operazione, apriamo il menù Weights nella finestra 3D e clicchiamo su “Invert”, per invertire i pesi: adesso, l'area da noi dipinta avrà peso 0, mentre nel resto della geometria avremo peso 1.

B3D Geometry Nodes 2 of 2 22

Nulla ci vieta, ovviamente, di modificare in un secondo momento i pesi, variando il valore del parametro Weight nella scheda Tool in modalità Weight Paint e dando delle pennellate sulla superficie; dobbiamo solo ricordare che NON inseriremo le istanze nelle aree di peso 0.

Nell'editor Geometry Nodes, digitiamo il nome del Vertex Group nel campo Density del nodo Point Distribute (“Pebbles”, nel nostro caso; fate attenzione a maiuscole e minuscole): la distribuzione dei punti sulla superficie originale avverrà in maniera proporzionale (in gergo, si dice appunto “in maniera pesata”) ai Vertex Weights da noi impostati.

B3D Geometry Nodes 2 of 2 23

Prima di concludere anche questo videotutorial e quindi la mini-serie di INTRODUZIONE ai Geometry Nodes in Blender 2.92, vediamo un ulteriore esempio di istanziazione di oggetti... ma con una modifica in più.

All'interno dello schema da noi definito, inseriamo un nuovo nodo Point Distribute, collegandogli in input Geometry di Group Input, quindi colleghiamogli un nuovo Point Instance (inizialmente vuoto) e colleghiamo i due Point Instance presenti nella scena ad un nuovo nodo Join Geometry, che verrà a sua volta collegato a quello già presente nella scena; in pratica, la geometria risultante sarà data da quella originale unita a quella in arrivo da due nodi Instance.

B3D Geometry Nodes 2 of 2 24

Nel nuovo nodo Distribute impostiamo lo stesso attributo Density di “Stone 1”, ma in Point Instance impostiamo, come oggetto da istanziare, il mucchietto di fili d'erba.

B3D Geometry Nodes 2 of 2 25

Se necessario, inseriamo un nodo Point Rotate per orientare correttamente i fili d'erba.

Inseriamo anche un nodo Point Scale (tra Point Rotate e Point Instance), impostando in particolare la modalità Vector, così da poter specificare il fattore di scala delle dimensioni dell'erba con un vettore.

B3D Geometry Nodes 2 of 2 26

Inseriamo un nodo Combine XYZ e colleghiamo la sua uscita Vector all'ingresso Factor (vettoriale) di Point Scale; i fili d'erba spariranno, perché i parametri XYZ di Combine avranno valore di default pari a 0.0, quindi riportiamo XY a 1.0 (o, comunque, ad un valore adeguato per queste dimensioni).

B3D Geometry Nodes 2 of 2 27

Colleghiamo quindi l'ingresso Z di Combine XYZ ad una nuova porta di Geometry Input; come avrete capito, l'intenzione è quella di regolare l'altezza dei fili d'erba nell'interfaccia del modificatore... ma perché limitarci ad un valore costante o a dover variare manualmente questo valore?

B3D Geometry Nodes 2 of 2 28

Aggiungiamo un editor Timeline alla finestra di Blender ed impostiamo un frame range per un'animazione, ad esempio 240 frames.

B3D Geometry Nodes 2 of 2 29

Posizioniamoci al frame 1, quindi impostiamo 0.0 per il parametro Z (che possiamo rinominare a piacere, come visto nella puntata precedente con i nomi delle lancette dell'orologio); facciamo poi click destro sul valore di questo parametro e scegliamo “Add Keyframe” per registrare un keyframe di animazione, appunto.

B3D Geometry Nodes 2 of 2 30

Spostiamoci al frame 240 dell'animazione, variamo il valore di Z a piacere ed inseriamo un keyframe per questo parametro anche all'ultimo fotogramma della nostra animazione.

B3D Geometry Nodes 2 of 2 31

Non ci resta che premere Play nella Timeline ed osservare il risultato della nostra animazione.

B3D Geometry Nodes 2 of 2 32

B3D Geometry Nodes 2 of 2 33

Bene, anche per questo tutorial è tutto!

Come sempre, vi invito ad esprimere dubbi, domande o richieste di chiarimenti nei commenti al video, su Youtube o – ancora meglio (perché lì potremo postare anche immagini e altre risorse) nel forum di Blender.it!

A presto!

B3D Geometry Nodes 2 of 2 34