Modellazione Poligonale – Parte 2

pubblicato in: Guida | 0

Credo che sia imprescindibile, ancor prima di descrivere tecniche e teorie, non spendere due parole sulla storia legata alla suddivisione poligonale. Questo per due motivi: primo, conoscere le vicende credo che sia di importanza essenziale per poter meglio comprendere cio’ di cui andremo a discutere; secondo, gli algoritmi di suddivisione sono intrinsecamente legati alla modellazione poligonale e proseguendo con la lettura dell’articolo ne comprenderete il perche’.

Nel 1978 Edwin Catmull, vicepresidente della computer division della Lucasfilm e Jim Clark pubblicarono uno studio sulla discretizzazione delle superfici utilizzando un modello poligonale (superfici di suddivisione della B-spline Catmull/Clark). Lo studio si basava su una evoluzione di un’algoritmo creato da Malcolm Sabin ed Donald Doo. Seguendone la metodologia, ne crearono un’evoluzione che riusci ad estendere la discretizzazione a delle mesh di topologia arbitraria.
Qualche anno piu’ avanti, nel 1986 Steve Jobs acquisì dalla Lucas il reparto di animazione computerizzata e assieme anche ad Edwin Catmull, creo’ una nuova compagnia indipendente, la Pixar. Catmull entro’ a far parte del team esecutivo e quando nel 1998 la Pixar produsse “Geri’s Game”, l’azienda vinse l’academy award per il miglior corto animato.
Con questo corto la Pixar introdusse un’innovativo e sorprendente approccio alla visualizzazione 3d, una tecnologia denominata “superfici di suddivisione”, un modo per descrivere le superfici utilizzando un modello poligonale. Cio’ che Catmull e Clark avevano ideato qualche anno prima era stato inserito in un cortometraggio.
Il vantaggio principale dell’utilizzo dell’algoritmo di Catmull/Clark fu quello dell’integrazione nella pipeline produttiva della Pixar; l’adattabilita’ del loro procedimento cooperava con il sistema di rendering (Renderman) nella suddivisione in poligoni; l’algoritmo delle superfici permise di tassellare automaticamente alcune parti dei modelli virtuali. L’algoritmo fu utilizzato in altre produzioni, ed ad oggi e’ quello piu’ diffuso ed integrato nei piu’ comuni software 3d.

Ora, generalizzando, possiamo dire che tramite le superfici di suddivisione, si riesce a generare delle geometrie scalabili, controllabili con dei parametri di definizione. L’aggiunta di nuovi vertici, spigoli, e poligoni segue un preciso set di regole che ne determinano il risultato finale. L’utilizzo di algoritmi differenti porta naturalmente ad avere delle geometrie generate diversamente.

es_1

Sintetizzando l’idea che sta dietro alla suddivisione poligonale, possiamo affermare che e’ quella di “creare un modello che serva da gabbia, per contenere il modello approssimato”. Il vantaggio principale che ne deriva è quello di poter gestire mesh con un ridotto numero di poligoni (il tutto come ben comprenderete è di grandissimo aiuto, specialmente per gli animatori) i quali verranno “trattati” automaticamente, per permetterci di guadagnare un dettaglio e velocità di controllo non altrimenti raggiungibile.

es_2

Il processo una volta assegnato, porta al fine di disporre di mesh piu’ definite, per appunto suddivise, rispetto alle originali. Il procedimento in via teorica potrebbe essere ripetuto infinite volte, ma verosimilmente viene applicato un numero limitato, tutte quelle che necessitano per approssimare correttamente l’oggetto al fine da raggiungere. Gli schemi di suddivisione possiamo dividerli in due categorie generali, interpolazione e approssimazione. Tramite l’interpolazione il posizionamento dei vertici originari rimane invariato, mentre con l’approssimazione (il metodo Catmull/Clark rientra in questo) lo scostamento dei vertici permette di guadagnare un elevato grado di arrotondamento delle superfici.

es_3

Col passare degli anni la tecnica di geometria scalabile data dalle superfici di suddivisione, e’ stata migliorata, adattata alle richieste, ed a oggi e’ tra le metodologie piu’ utilizzate nel campo cinematografico e videoludico.

Esistono alcune tecniche che riguardano la modellazione poligonale e inquadrandole per tipologia possiamo distinguerne tre, quelle comunemente utilizzate:

1) la creazione di un oggetto tramite un percorso (spline) con una aggiunta successiva di dettagli con altri elementi, il tutto coadiuvato dall’utilizzo di strumenti annessi; metodi di proiezione di spline su superfici; oggetti derivati da operazione booleane; altre tecniche ibride

2) la creazione di un oggetto tramite un poligono o una selezione di poligoni, anche derivanti da geometrie primitive

3) metodi di creazione a forma libera, tramite l’ausilio di programmi appositi (Zbrush, Mudbox, Sculptris etc); l’utilizzo di mappe di scostamento

Fondamentalmente i procedimenti di creazione poligonale orbitano attorno a queste logiche. Posso altresì dirvi che non esiste una vera e propria metodologia migliore o peggiore di un’altra. Esistono verosimilmente tanti criteri e strumenti, che utilizzati dal modellatore in base alle necessità, portano alla finalizzazione di un oggetto. Della creazione di un oggetto 3d, derivante dalla estrusione o rivoluzione di una spline, credo che sia anche superfluo parlarne cosi come degli oggetti derivanti da operazioni booleane o da metodi di proiezione; dell’ausilio di programmi accessori e delle mappe di scostamento tornerò più avanti, con un articolo dedicato. Quello su cui adesso, e per tutto lo sviluppo degli articoli, focalizzerò l’attenzione saranno i termini di creazione derivanti dal poligono.

1) box modeling: utilizzata per la creazione della forma base, (partendo generalmente da un oggetto primitivo) e definita per l’utilizzo di strumenti che volgono attorno al movimento, rotazione, ridimensionamento, estrusione di facce ed inserimento di loop (selezione contigua di una serie di spigoli)

es_4

2) poly modeling: caratterizzata dalla creazione di un poligono o di un set di poligoni, per quindi gestirne le creazioni/traslazioni di vertici, spigoli, facce aggiunte tramite vari metodi. Generalmente, le esecuzioni si concretizzano tramite estrusioni di spigoli, creazioni vertici, tagli individuati per definire meglio alcune parti della mesh, utilizzo simmetrie, etc. Utilizzando quest’ultimo metodo, diventa fondamentale il concetto di topologia, che vi ricordo e’ lo studio di creazione di una mesh seguendo una disposizione funzionale con una conformazione all’andamento delle curve dell’oggetto da riprodurre. Il poly modeling non è altro che la creazione passo a passo, e richiede molto spesso l’uso di riferimenti, quali foto, disegni tecnici, schizzi preparatori e quant’altro.

es_5

 

CONTROL CAGE E LOD

Il concetto primario legato alla suddivisione poligonale e’ quello della gabbia di controllo (control cage), e come avevo scritto precedentemente, non e’ altro che un reticolo che contiene il modello approssimato. La gabbia automaticamente creata, è costituita da dei punti di controllo. Questi ci permettono di rinnovare tutti gli spostamenti/inserimenti effettuati sull’oggetto suddiviso, in maniera diretta ed univoca. L’interazione si concretizza per l’appunto tramite l’intervento su questi punti a cui il modello in alta risoluzione e’ agganciato (i punti di controllo hanno anche una peculiarità che li contraddistingue, quella di poter gestire l’influenza/peso sull’area di poligoni a cui fanno riferimento, ricreati tramite la suddivisione; la percentuale di influenza e’ controllata da dei parametri; questo concetto lo segnalo soltanto, in quanto non e’ molto utilizzato, se non in particolari casi)

es_6

Il riuscire a riprodurre verosimilmente un oggetto/forma complessa in 3d a volte e’ un processo laborioso, che richiede un’ottima abilità e conoscenza degli strumenti da utilizzare. Legata alla complessità c’e’ un concetto, che credo sia il caso di affrontare adesso e da tenere in considerazione. Anche se a primo impatto puo’ sembrare secondario, lo reputo importante specialmente utilizzando la modellazione poligonale con l’ausilio delle superfici di suddivisione; il numero di poligoni. Quando l’oggetto da riprodurre e’ articolato, questo puo’ richiedere per la sua definizione, un’elevato numero di poligoni comportando di conseguenza una richiesta di risorse hardware anche elevati. 

es_7
es_8

A tal proposito, saturare la memoria di un computer, portare ad un crash il sistema per dovere gestire un elevato numero di poligoni, sia in fase di modellazione che rendering sono delle situazioni in cui ci si arriva senza quasi accorgersene. Come ben comprenderete, la presenza in una scena 3d di decine di oggetti suddivisi ognuno con centinaia di migliaia di poligoni, rende oltremodo problematica la gestione anche disponendo di hardware adeguati. L’interoperabilità diventa impossibile o eccessivamente lenta e molte volte diviene impraticabile renderizzare la scena nel suo complesso (evito di parlare di istance/proxy o simili, per il momento basta che comprendiate le difficoltà’ annesse al lavoro)

L’uso di moderni software 3d, ci permette di decidere ed distinguere il livello di approssimazione/visualizzazione e quindi consentire, di operare con un livello di suddivisione accettabile, e nel contempo renderizzare ad un livello superiore. Questa possibilita’ naturalmente ci concede di poter “agevolmente” lavorare col modello 3d in fase di modellazione, ma non ci esclude dalla possibilita’ di crash del sistema nella fase di rendering. A tal proposito, entra fondamentale comprendere un concetto, il livello di dettaglio, (LOD – level of detail). Il principio da tenere in prima considerazione, e’ che tutto viene fatto in funzione del rendering (almeno nel normale workflow). L’alto grado di suddivisione spesso e’ necessario soltanto per i modelli che si trovano molto vicini alla camera, o comunque per quelli a cui l’alto livello di suddivisione e’ indispensabile. Al contrario, quelli che sono situati distanti, possono/debbono essere approssimati meno volte, per risparmiare memoria e tempi di rendering.

La consapevolezza di come intervenire, su quali modelli, evitare a priori possibili inconvenienti tecnici, organizzare il giusto workflow, credo che sia di importanza primaria tanto quanto lo svolgimento dello stesso, perche’ si rischia di rendere del tutto improduttivo o quasi il lavoro svolto.

POLY MODELING

Inquadrando il concetto del “poly modeling” ed introducendovi adesso delle tecniche pratiche, posso dirvi che tutto orbita attorno a due termini: creazione/selezione, flow/topologia. Questi sono intrinsecamente legati l’uno all’altro e tutte le possibili questioni fanno riferimento a questi concetti. Adesso, spero, avrete modo di comprenderne meglio il significato e l’importanza. Vi accenno altresì che diventa pregiudizievole il loro utilizzo, in quanto la corretta/errata applicazione influenzerà conseguentemente il risultato finale, nel contempo la loro comprensione vi permetterà di approssimare meglio un qualsiasi oggetto/forma in 3D.

Definendo meglio l’utilizzo del “poly modeling” per la creazione degli oggetti 3d e generalizzando diciamo che questo è sviluppato tramite l’interazione con i diversi elementi che compongono il poligono. Riepilogandoli possiamo distinguerli in queste categorie:

  • vertici: la creazione dei nuovi poligoni avviene tramite l’inserimento di nuovi vertici / duplicazione di quelli esistenti, consentendo anchel’esatto posizionamento nello spazio 3d tramite l’immissione di valori x,y,z o l’aggancio a dei punti di ancoraggio su altri elementi presenti sulla scena.
  • spigoli: i poligoni vengono creati dallo scostamento dello spigolo, o della selezione di n spigoli. Questo metodo e’ molto versatile e permette un elevato grado di modifica
  • facce: le operazioni su questo elemento (estrusioni, ridimensionamento, scostamento) si traducono principalmente in un aumento del volume degli stessi

Adesso, approfondendo le esecuzioni, un concetto a mio avviso, che diventa di primaria importanza e’ quello pertinente gli spigoli e la loro selezione. Il concetto di flow/topologia e’ a questo legato in particolare nella selezione degli spigoli e il termine di edge loop (selezione contigua di una serie spigoli) ed edge ring (selezione parallela di una serie di spigoli).

La concretizzazione del processo di modellazione, il cambiamento della conformazione di una mesh, il suo adattamento piu’ o meno verosimile all’ oggetto da riprodurre, si attuerà tramite una serie di strumenti. Il loro utilizzo e’ intrinsecamente legato alla tipologia, ma soprattutto alla scelta che avrete preso a monte per riprodurre l’oggetto.

Questa, caratterizzerà tutto il processo produttivo, e la discrezione di quale metodo e strumenti utilizzare, influenzerà naturalmente il risultato finale.

Una nota riguardante la topologia: teoricamente e’ possibile raggiungere risultati del tutto analoghi utilizzando topologie differenti. La discrezione e’ legata solo ed esclusivamente alla funzione dell’oggetto da riprodurre.

Se l’ambito e’ quello dei videogiochi, la topologia seguirà una “imposta” metodologia dettata dal workflow, diversamente, se lo scopo e’ quello di sfruttare il modello nel campo delle animazioni, il processo varierà e potrà trasformarsi ancora nel campo della sola visualizzazione/rendering, in cui magari sarà richiesto un alto livello di dettaglio e realismo.

Adesso avro’ modo di introdurre alcuni strumenti e termini, ma come ben comprenderete la loro effettiva padronanza sarà conseguente al tempo che dedicherete alla creazione di modelli 3d. Soltanto misurandosi con il rifacimento di mesh sempre più accurate avrete modo di comprendere meglio i concetti e gli strumenti di seguito accennati.

Tool riguardanti i vertici:

Tool riguardanti gli spigoli:

Tool riguardanti le facce:

Nei vari software 3d, questi esempi/tool, acquisiscono diversi termini, ma rimane sempre uguale la metodologia applicata.

Prima di chiudere questa serie di articoli, voglio spendere due parole su un software che ha rivoluzionato e continua con le ultime release, concetti e workflow della modellazione poligonale: Zbrush della Pixologic.

Questo programma ha permesso di uscire da alcune logiche legate alla “classica” creazione di una qualsiasi forma e tramite l’utilizzo di particolari strumenti ha conferito una libertà di azione al modellatore non prima e altrimenti raggiungibile. E’ pur vero che questo software e’ principalmente utilizzato nell’ambito “artistico”, in quanto le sue caratteristiche principali sono quelle di riprodurre strumenti che “simulano” la scultura sulla creta. La possibilità di esportare gli oggetti 3d creati con il livello di suddivisione desiderato, le mappe di scostamento, le texture, per quindi inserirle all’interno del vostro software 3d preferito, ha permesso una perfetta l’integrazione all’interno di workflow per numerosi studi che si occupano di 3d.