2.5 – Modellazione – Modificatori

I modificatori (modifiers) sono degli strumenti per la modifica non distruttiva, quindi reversibile, degli oggetti presenti in scena. Quelli che al momento ci interessano sono progettati per una rapida alterazione della struttura di qualsiasi mesh, ciò allo scopo di rendere possibile in pochi passaggi delle operazioni altrimenti molto complesse. Cliccando l’icona delle properties apparirà su schermo il pannello dei modificatori con l’intera lista di quelli già eventualmente applicati all’oggetto. Per aggiungere un modificatore bisogna soltanto cliccare .

I modifiers che vedremo in questo paragrafo appartengono alle categorie Generate e Deform, molto utili per iniziare a muoverci sul campo di una modellazione più avanzata; altri verranno chiamati in causa contestualmente a diversi argomenti poiché i modificatori ricoprono nel loro insieme un’ampia varietà di ruoli, non solo inerenti alla modellazione. Con il modificatore Bevel riusciremo molto banalmente a smussare i bordi di un modello.

Qualsiasi oggetto, anche quelli dalle geometrie piuttosto semplici, non presenta nella realtà degli spigoli perfettamente definiti. In fase di rendering il software si accorgerà della differenza tra gli spigoli netti e quelli leggermente smussati, restituendo un risultato che in certi casi sarà più realistico, dato che a seconda del materiale e dell’illuminazione, gli spigoli arrotondati o smussati tenderanno a concentrare maggiormente la luce riflessa in delle aree dette specular (capitolo 3). I parametri principali del Bevel sono la larghezza dell’aria di smusso Offset (Width, Depth), la sua definizione Segments e il profilo dello stesso (0.5 per un profilo circolare). In basso è visibile il cubo con la più semplice applicazione di Bevel, cinque segmenti per l’aera smussata e la finale applicazione dello smooth shader.

La spunta su Clamp Overlap impedisce alle superfici di intersecarsi a causa di elevati valori di Offset. Attivando la modalità Vertices è possibile applicare il bevel ai soli vertici. Con Angle (Limit Method) decideremo il valore minimo dell’angolo tra le superfici necessario ad ottenere un’area intermedia di smusso. In edit mode possiamo decidere quali bordi della mesh dovranno essere soggetti al Bevel assegnando ad essi un peso (valore numerico compreso tra 0 e 1) tramite l’opzione Edge Bevel Weight situata nel menu Edge richiamabile a schermo dall’Edge Context Menu. In edit mode selezionate i quattro bordi della faccia superiore del cubo e lanciate il comando edge bevel weight; il puntatore muterà nella doppia freccia e potrete cambiare il peso scegliendo un valore compreso tra 0 e +1, spostate quindi il mouse a destra per aumentare il peso a 1 e confermate l’operazione con il tasto sinistro del mouse. I bordi verranno ora contrassegnati dal colore Ciano e in basso nella 3D View apparirà la relativa barra Factor utile a ulteriori variazioni del peso (valori negativi non avranno effetto).

Le operazioni di Bevel possono essere compiute direttamente in edit mode dove troviamo lo strumento dedicato, il quale agisce sui bordi selezionati cliccando l’icona:

nella toolbar, in questo caso le modifiche saranno fin da subito definitive e non reversibili.

I modificatori presentano fino a quattro opzioni di visibilità con l’icona della macchina fotografica si decide se la modifica dovrà essere renderizzata; mediante l’icona dello schermo potremo rendere visibile o invisibile la modifica nella preview in object mode; stessa cosa per l’edit mode con la seconda icona, dove vedremo sia la mesh modificata, sia l’originale in wire frame (ignoriamo per ora la restante). Accanto a queste icone troverete una freccia in basso da cui potrete accedere ad alcune opzioni:

  1. Apply (Ctrl-A) renderà definitiva la modifica alla mesh e il modificatore scomparirà dalla lista.
  2. Quando verranno applicati più modificatori a un oggetto è importante considerare l’ordine di applicazione di questi, che andrà dall’alto verso il basso nella lista. Invertendo o cambiando l’ordine di uno o più modificatori, il risultato potrebbe cambiare radicalmente.

Con e si può spostare un modificatore in cima o in fondo alla lista. Per muoverli liberamente basta cliccare su e trascinarli su o giù

Partendo da due mesh che si compenetrano, tramite il modificatore Boolean potremo agire su una di esse trasformandola nella geometria risultante da operazioni logiche quali intersezione e differenza. Pensate al caso banale di dover creare un buco circolare in una parete oppure un ingresso ad arco per qualsivoglia struttura che inevitabilmente avrà delle superfici piane. Il vantaggio del modificatore Boolean è la rapidità con la quale in molti casi è possibile raggiungere il risultato desiderato, lo svantaggio sarebbe invece rappresentato dal fatto che generalmente la struttura poligonale modificata si presenta ricca di vertici e irregolare. Vedremo successivamente come porre eventualmente rimedio a ciò, con l’impiego di altri modificatori studiati per ristrutturare una qualsiasi mesh (Remesh e Decimate). Partiamo da un esempio pratico: supponiamo di voler praticare un’apertura nella semplice mesh parallelepipeda visibile in alto, ciò utilizzando una primitiva cilindro precedentemente modificata in edit mode (potete anche provare con il cilindro base in modo da praticare un foro).

Alla mesh applichiamo il modificatore Boolean con l’operazione Difference, indicando il cilindro come oggetto da sottrarre

Tramite l’outliner rendiamo invisibile nella 3D View il cilindro, spegnendo l’icona dell’occhio cliccandoci su:

vedremo così il foro praticato nella nostra mesh.

Difference sottrae dunque al volume di un modello, la porzione in comune tra esso e una seconda mesh. Questa operazione verrà resa definitiva con Apply (Ctrl-A il cilindro a quel punto se non dovesse più servire, lo si può anche eliminare). L’applicazione del modificatore determina la creazione di un certo numero di vertici e facce per consentire l’operazione desiderata. Inizialmente questi elementi non saranno visibili a causa dell’impiego di ngons, ma basterà triangolare tutte le facce del modello in edit mode (Ctrl-T) per osservare la reale situazione.

Tutto ciò non rappresenterà un problema a meno che Boolean non venga applicato a modelli molto dettagliati, in tal caso il modificatore oltre a creare una mesh finale ancora più complessa, impiegherà un notevole tempo per l’elaborazione.
Tramite Intersect invece otteniamo l’esatta intersezione tra le due figure, che nell’esempio appena trattato è la parte del cilindro dentro il solido rettangolare.

Passiamo al modificatore Decimate utile a trasformare le mesh riducendone drasticamente il numero di vertici, fino a ottenere dei modelli low poly magari utili nella produzione di videogames.

Come esempio utilizzeremo il modello umanoide del software open source MakeHuman v1.2, adatto a creare figure umane di ogni tipo in qualsiasi posa voi desideriate (makehumancommunity.org).

Questo modello (il primo nelle tre immagino precedenti) non possiede né un numero elevato di vertici, né un numero particolarmente basso, e ben si presta ad illustrare i prossimi due modificatori.
Dopo aver applicato decimate, andremo ad abbassare il Ratio che è la percentuale di dettaglio della geometria da salvaguardare, si parte dal valore 1 = 100%, nessun cambiamento, fino a trasformare il modello in modo irriconoscibile avvicinandosi a 0. Non sarà difficile trovare il miglior compromesso tra resa e face count.

Supponiamo invece di voler agire in modo opposto e rendere più complessa (e pesante in termini computazionali) la struttura di una mesh aumentandone la risoluzione, eliminando così le spigolature nelle superfici curve che risulterebbero irrealistiche nel render finale. Nonostante lo smooth shading riesca ad ammorbidire i lati spigolosi di una qualsiasi superficie approssimativamente curva, gli spigoli rimarranno perfettamente visibili nella silhouette-contorno del modello, per il semplice motivo che la sua geometria resta inalterata. Per una perfetta resa delle superfici curve è possibile utilizzare ben due appositi modificatori: Subdivision Surface e Multiresolution. In Subdivision Surface (Subsurf) troviamo l’algoritmo Catmull-Clark per suddividere a piacimento la mesh, distinguendo tra la risoluzione della Viewport in tempo reale e quella del rendering (in Quality basta il valore di default pari a 3).

Quando e se il modificatore verrà applicato, la suddivisione effettiva sarà quella impostata in Viewport.

Anche nel modificatore Multi-resolution è presente l’algoritmo Catmull-Clark, per attivarlo basta cliccare Subdivide il numero di volte necessario.

In caso di due o più suddivisioni è possibile tenere basso il valore Viewport per non appesantire eccessivamente la scena nella 3D View. Applicando Subdivision Surface a una mesh che presenta sia parti curve, sia piatte, delimitate da uno spigolo curvilineo, come ad esempio la primitiva Cylinder, otterremo un risultato che non sarà affatto una superficie cilindrica curva.

Occorre dunque assegnare alla mesh, in questo caso il cilindro, prima il modificatore Edge Split e successivamente SubSurface, ricorrendo infine anche allo smooth shading per un risultato pressoché perfetto.

Edge Split divide i bordi della mesh contrassegnati in Edit Mode con Sharp (Context menù>Mark Sharp) bordi che in tal caso saranno evidenziati dal color ciano, oppure se l’ampiezza dell’angolo che formano tra loro è minore di quella indicata in Split Angle. Si può anche scegliere uno solo di questi metodi tramite le due caselle Edge Angle e Sharp Edges, entrambe attive di default.

Edge Split torna utile anche nei casi come quello visto nel paragrafo 2.3, cioè quando vorrete evitare che lo smooth shading coinvolga spigoli che devono restare netti.

L’uso del modificatore subsurf può essere accoppiato all’opzione Edge Crease (Maiuscolo-E) situata nel solito Edge Context Menù (edit mode) o nel menù Edge che compare a schermo con la combinazione Ctrl-E . Partiamo dal semplice cubo e applichiamo ad esso il modificatore subdivision surface con il valore 3 in Level Viewport.

In edit mode selezionate un qualsiasi bordo e lanciate il comando edge crease; il puntatore muterà nella doppia freccia a conferma del fatto che potrete cambiare un valore numerico da -1 a +1, spostate quindi il mouse a destra per aumentare tale valore e vedrete parte della mesh tendere al bordo di partenza; quindi rendete definitiva l’operazione cliccando il tasto sinistro del mouse. Successivamente in basso a sinistra nella 3D View apparirà la barra relativa al valore Edge Crease per eventuali modifiche.

Il bordo a questo punto sarà di colore magenta. Ripetete l’operazione per tutti i 4 bordi appartenenti a una delle sei facce del cubo, per giungere a questo risultato.

Siete già in grado d’intuire le potenzialità dell’accoppiata Subsurf ed Edge Crease, per quanto riguarda la modellazione. Tutto ciò sarà estremamente di aiuto quando vi ritroverete dinanzi a un modello che possiede sia superfici piane, sia superfici curve; in tal caso potrete influenzare il comportamento del modificatore subsurf al fine di aumentare il dettaglio e la risoluzione delle superfici curve, senza però alterare o distruggere la forma del modello. Altresì potrete ottenere dei modelli molto dettagliati partendo da una semplice base costituita da pochi poligoni, contrassegnando opportunamente i suoi bordi mediante l’edge crease, quindi applicando il modificatore subsurf.

Il modificatore Solidify aggiunge uno spessore a qualsiasi superficie, il tutto modificando semplicemente il parametro Thickness che potrà assumere anche valori negativi a seconda del verso, lungo la direzione della normale, nella quale si preferirà creare il solido.

Una potente tecnica per deformare qualsiasi mesh è quella di ricorrere ad un oggetto non renderizzabile chiamato Lattice più il relativo modificatore. Il Lattice si presenta come una semplice matrice tridimensionale di vertici che potremo inserire nella scena dal menù Add della 3D View; successivamente in edit mode sarà possibile manipolare i suoi otto vertici di default. Cliccando l’icona delle properties, accederemo al pannello Lattice dove aumentare a piacere il numero dei suoi vertici nelle tre dimensioni (con coordinate UVW). Di default troveremo 2x2x2 e quindi come detto otto vertici.

Trattandosi di una matrice discreta la cui risoluzione è in genere molto più bassa del dettaglio del modelli, si può scegliere il tipo d’interpolazione della deformazione che di default è impostato a BSpline. Dopodiché inseriamo nella scena una sfera UV ponendola all’interno del Lattice.

Aumentando il dettaglio sia dell’oggetto da deformare, sia del Lattice, le deformazioni risulteranno più precise. Operando delle trasformazioni sul lattice in Object Mode, quali traslazioni, rotazioni o cambiamenti di scala, vedremo in tempo reale l’effetto di tali deformazioni sulla sfera, fino a quando quest’ultima resterà interamente o parzialmente all’interno del lattice. In tal modo potremo creare delle deformazioni animate di qualsiasi mesh. Nel caso desiderassimo delle deformazioni uniformi per l’altezza del modello (cioè indipendenti dalla coordinata W), possiamo porre W=0 e lavorare con un lattice sotto forma di griglia 2D.

Trattiamo ora il modificatore Remesh, che come suggerisce il nome serve a rigenerare una mesh (retopology) con dei diversi algoritmi: Sharp, Smooth, Blocks e Voxel. Inseriamo nella scena una primitiva di tipo Text (menu Add>Text) la quale ha molte similitudini con le curve/superfici trattate in precedenza, che tra le altre cose ci permette di utilizzare qualsiasi font installato nel nostro sistema. Text si basa infatti sullo stesso funzionamento dei caratteri TrueType, OpenType etc, cioè oggetti vettoriali. Nel pannello delle proprietà dell’oggetto testo, icona

troviamo una serie di opzioni molto intuitive: possiamo dare uno spessore con Extrude, smussare gli spigoli con Bevel (Depth + Resolution), caricare un Font di nostro gradimento e stabilire una formattazione nel caso si voglia creare un intero testo. Le stesse considerazioni fatte per le curve valgono anche per l’oggetto di tipo testo, con le opzioni del pannello Shape per la risoluzione sia della Preview, sia del Rendering.
In questo esempio limitiamoci ad operare sull’oggetto di default con la scritta Text estrusa. Per modificarla basta andare in edit mode nel quale apparirà il cursore per l’inserimento del testo desiderato. Trasformiamo l’oggetto text in una mesh dall’Object Context Menù>Convert to>Mesh e osserviamo il risultato in Edit Mode.

Come vedete la conversione è avvenuta con successo mostrando però nelle parti ricurve una concentrazione complessa e confusa di facce triangolari. Per ottenere una Mesh dalla struttura più ordinata basterà la semplice applicazione del modificatore Remesh con l’algoritmo Sharp.

In tale esempio è importante concentrarsi sulle due lettere T ed E (minuscole), in quanto il carattere di default per la T maiuscola è del tutto squadrato (del resto potrete sempre separarle in edit mode e poi applicare Remesh). La risoluzione e il dettaglio della mesh finale dipenderà dalla profondità Octree Depth (a valori più alti, maggiore precisione) e Scale (a valori maggiori, minore precisione). Se, come in questo caso, la mesh di partenza fosse costituita da parti tra loro separate, occorrerà togliere la spunta a Remove Disconnected Pieces. Remesh potrebbe ad esempio tornare utile nel ricreare una mesh ottenuta dalle operazioni booleane difference e intersect. L’algoritmo Smooth è più adatto per le mesh prive di spigoli e più “tonde”. Mentre Blocks potrà servire nel caso occorra creare dei modelli “blocchettosi” partendo da un oggetto caratterizzato da forme curve.

Il modificatore Cast tende a trasformare una mesh (discretamente dettagliata) in una delle forme predefinite quali Sphere, Cuboid, Cylinder (Cast Type), secondo il parametro principale Factor che può assumere valori tra 0 e 1.

Si può limitare l’azione del modificatore agli assi x, y e z (solo x e y per Cylinder). Più che altro potrebbero risultare interessanti i valori intermedi al fine di arrotondare un modello troppo spigoloso, o viceversa. Per valori di factor >1, o negativi, la forma della mesh verrà totalmente stravolta.

Il modificatore Curve deforma la mesh seguendo la forma di una curva presente in scena.

La deformazione dipenderà anche dall’asse scelto (x, y, z, -x, -y, -z) e dalla posizione reciproca di Mesh e Curva. Non sarà semplice prevedere l’effetto della deformazione in base a tali parametri. Nell’immagine potete vedere un semplice caso ben evidenziato dalla vista quad view (Ctrl-Alt-Q).

Il modificatore Wireframe trasforma l’insieme dei bordi della mesh in una gabbia solida il cui spessore del telaio è regolato dal valore Thickness (occorre fare attenzione alla scala del modello, oppure attivare il Relative Thickness)

Veniamo al modificatore Array (Schiera) da utilizzare in quelle situazioni che necessitano la presenza di molti oggetti dello stesso tipo disposti secondo un ordine da stabilire. Il caso più semplice è quello di molti oggetti uguali in fila.

Ciò accade con la scelta di Fixed Count in Fit Type che ci concede di decidere il numero N di duplicati in Count (incluso l’oggetto sorgente). A disposizione abbiamo due tipi di distanza per la traslazione dei duplicati: con Relative Offset (impostazione di default) il valore 1 è la dimensione bounding box dell’oggetto nella relativa coordinata x, y o z

invece in Costant Offset, il valore 1 è l’unità metrica di Blender. Applicando tre volte il modificatore Array, per le tre dimensioni x y o z, potremo creare matrici tridimensionali costituite da uno stesso oggetto.

Con la modalità Fit Length non potremo decidere il numero di duplicati, ma una distanza – lunghezza da colmare.

Infine con Fit Curve possiamo lasciare a una curva il compito di definire la lunghezza complessiva, caso in cui potrebbe interessare l’applicazione di un secondo modificatore tipo Curve che al contempo modellerà il risultato dell’array. La curva dovrà avere dimensioni adeguate che potrete aumentare in edit mode (dove modellare la curva stessa) o in object mode.

A seconda della mesh di partenza e dei vari offset, potrebbe essere utile eliminare i vertici e gli spigoli in eccesso e/o indesiderati, con l’opzione merge, indicando solo la distanza entro la quale i vertici verranno fusi tra loro.

Inoltre l’offset potrà esser pilotato dalla posizione e rotazione di un altro oggetto ad esempio la primitiva Empty (vuota), oggetto non renderizzabile trattato nel successivo paragrafo, che ha l’unico scopo di definire una posizione e/o un orientamento nello spazio. Nel modificatore Array si utilizzano le rotazioni e le traslazioni di un oggetto empty al fine di disporre le copie in sistemi circolari o ad elica (immagini nella pagina successiva). Questo modificatore può essere utile nella modellazione organica di mesh abbastanza complesse; ma vien da se che tutto ciò esige un certo tempo di sperimentazione in quanto il risultato non sempre è d’immediata comprensione, con l’ulteriore controindicazione di arrivare a maneggiare modelli finali molto pesanti nel caso la mesh di partenza fosse ricca di vertici.

Il modifier Mirror specchia la mesh rispetto agli assi (intesi nel sistema Local) che passano per la sua origine, ad esempio specchiando rispetto l’asse X il piano di simmetria sarà quello definito dai restanti assi Y e Z.

Nell’immagine precedemte vediamo che l’oggetto ha un’origine posta in un punto scelto arbitrariamente nello spazio, non coincidente con il centro geometrico della mesh. Solitamente l’origine viene posta su un bordo o faccia del modello. In Mirror Object siamo liberi di indicare un altro oggetto, ad esempio di tipo empty, al posto dell’origine.

Paragrafo successivo
Paragrafo precedente

Torna all’Indice


Nell’augurarti un divertente e produttivo studio di Blender, ti ricordo che puoi supportare questo progetto in due diversi modi: con una piccola donazione (paypal) oppure acquistando la versione PDF (su lulu.com) impaginata in modo professionale e ottimizzata per la visione su Tablet.  



>Acquista l’ebook (PDF) su lulu.com in piena sicurezza con paypal e carte prepagate<