• Non ci sono risultati.

La rappresentazione tridimensionale: modellazione 3D poligonale e nurbs

5.1 Dalla nuvola di punti alla restituzione 3D

5.1.8 Decimazione della mesh

La decimazione delle mesh descrive una classe di al- goritmi volta a convertire una certa mesh poligonale in un’altra che presenta un numero più ridotto di facce, spigoli e vertici. Attraverso tale procedura vengono de- finiti criteri di qualità, come la distanza geometrica o l’apparenza visiva, che contraddistinguono le mesh allo scopo di salvaguardare il più possibile le specifiche pro- prietà dell’originale.

Gli algoritmi di semplificazione di poligoni fanno ri- corso ad una combinazione di vari operatori, fra i qua- li ritroviamo in particolare: la normalizzazione, (ossia l’eliminazione dei poligoni degenerati o ridondanti), la semplificazione dei vertici e degli spigoli, la semplifi- cazione della dimensione della faccia (cioè la riduzione delle aree più piccole di una certa area di soglia), ed infine la semplificazione delle facce secondo le normali, consistente nella fusione delle facce adiacenti con nor- mali quasi parallele.

Nei confronti del concetto di decimazione di una mesh possono essere adottati differenti approcci, che anche in letteratura vengono difatti distinti in algoritmi di raggruppamento dei vertici, algoritmi di decimazione incrementale e algoritmi di ricampionamento. Il primo tipo di algoritmi è in genere piuttosto efficace, anche se non sempre le mesh che ne derivano sono di una quali- tà soddisfacente; gli algoritmi incrementali producono invece mesh di maggiore qualità, mentre le tecniche di ricampionamento rappresentano l’approccio più generi- co alla decimazione delle mesh.

A questo punto vengono distribuiti, in modo più o meno libero, nuovi campioni lungo la geometria originale del- le superfici lineari, ed è appunto collegando tali campio- ni che viene creata una mesh totalmente nuova. Tuttavia il principale inconveniente del ricampiona- mento è costituito dall’errore alias, che si verifica quan- do il pattern di ricampionamento non è perfettamente

conforme rispetto alle caratteristiche della geometria originale. In genere comunque i metodi adoperati nel software commerciale per la gestione di dati da acquisi- zione 3D, fanno uso delle tecniche di mesh decimation incrementale.

Gli algoritmi incrementali rimuovono un singolo ver- tice della mesh alla volta, ad ogni passo viene infatti individuato il vertice che risulta più idoneo ad essere eliminato sulla base di parametri che vengono determi- nati dall’utente, e che si possono distinguere in criteri binari e continui.

Ogni volta che viene eseguita una rimozione, inoltre, varia anche la geometria della superficie, e dovranno quindi essere nuovamente rivalutati anche tali criteri di qualità.

Poichè l’obbiettivo principale della rimozione di base è quello di fare in modo che l’operazione risulti il più semplice possibile, viene realizzata una forte decima- zione attraverso l’applicazione di vari passi di decima- zione semplice, impiegando gli operatori Euleriani. Il primo operatore, in particolare, si propone di eliminare un vertice e i suoi triangoli adiacenti, mentre un secon- do operatore parte da due vertici adiacenti e collassa il bordo in comune tra i due.

Tutte queste operazioni di rimozione, comunque, man- tengono la consistenza delle mesh, e quindi anche la topologia della superficie sottostante. Nella mesh ori- ginale tuttavia nessun buco può essere chiuso e nessuna maniglia può essere cancellata completamente.

Se uno schema di decimazione fosse infatti capace di semplificare la topologia del modello di input, sareb- be necessario utilizzare un operatore di rimozione non- Euleriano, dove la forma più comune di esso è costituito dal cd. operatore di contrazione del vertice, in cui due vertici possono essere contratti in un nuovo vertice.

Il modello 3D ottenuto dalla fase di mesh edithing deve sempre tener conto della finalità per il quale è stato concepito. Non sempre infatti risulta utile avere un modello nato da un’eccessivo numero di punti, con un’ecessiva quantità di informazioni, che risulta però poco fruibile e non direttamente utilizzabile nelle diverse applicazioni interattive. E’ importante conoscere a priori la finalità del modello 3d, per poter individuare il giusto numero di poligoni che lo andranno a comporre. Attraverso il processo di Decimazione (effettuabile in qualsiasi momento) è possibile diminuire il numero di poligoni, di qualsiasi quantità percentuale, mantenendo comunque sotto controllo le variazioni introdotte rispetto alla precisione iniziale.

Nell’esempio sopra riportato, riguardante il basamento di una semicolonna della terraza inferiore del Palazzo di Erode, possiamo vedere come la decimazione giochi un ruolo fondamentale nella realizzazione di un modello e come il livello di dettaglio vari al variare del numero di poligoni.

L’esempio descrive bene inoltre quanto cresca in maniera esponenziale il livello di accuratezza edescrittiva della morfologia del manufatto al calare del numero dei poligoni che descrivono la mesh.

5.1.9 Remeshing

Lo scopo della tecnica di remeshing è quello di incre- mentare la qualità della mesh nell’utilizzo di vari algo- ritmi di modellazione.

A partire da una mesh tridimensionale si determina quindi una nuova superficie poligonale che deve essere in grado di soddisfare requisiti di qualità offrendo una buona approssimazione della mesh iniziale. In partico- lare la qualità della mesh è data dalle proprietà non tipo-

logiche della superficie, come la regolarità, la dimensio- ne, l’allineamento, la densità, e la forma degli elementi costitutivi della maglia poligonale.

Nel caso specifico, inoltre, le operazioni di remeshing sono finalizzate ad ottenere una mesh con distribuzione uniforme, il che significa che gli elementi delle mesh vengono distribuiti sul modello nella sua interezza. L’idea di fondo è quella di giungere ad una mesh isotro-

combinata con quella di decimazione della mesh, inter- vallate da operazioni di distensioni della mesh stessa. pica, in cui infatti tutti i triangoli presentano una forma

piuttosto regolare che si avvicina molto a quella equila- tera. E’ poi possibile uniformare ulteriormente la mesh operando sulla dimensione dei triangoli oppure sulla densità dei vertici.

Fra gli algoritmi di remeshing esistenti e più comune- mente utilizzati, si possono in particolar modo distin- guere gli algoritmi Greedy, Variational e Pliant.

I primi in genere calcolano una modifica alla volta, fin quando non viene raggiunto lo scopo perseguito; gli al- goritmi variational qualificano invece il problema ini- ziale come un problema di minimizzazione dell’ener- gia, dove il livello energetico più basso equivale alla soluzione ideale al problema. Infine l’algoritmo pliant è costituito dal risultato dell’applicazione di affinamento

Nelle immagini, esempio di tecnica di remeshing applicata alla restituzione di elementi architettonici del sito di Masada.

Le tre immagini nella prima riga sono mesh risultanti di una elaborazione di ritocco ed integrazione. Nella seconda fila, la medesima mesh dopo il trattamento di remeshing.

Si può apprezzare che la nuova mesh ha una distribuzione pù omogenea dei poligoni che la compongono senza che subisca un aumento della grandezza del file di partenza, i poligoni distribuiti in maniera più omogenea, sulla superficie della nuova mesh, risultano spesso in numero minore rispetto ai precedenti. In questo caso i poligoni di partenza (150000) sono rimasti invariati nel numero.

Modellazione di tipo nurbs della chiesa dei SS. Martiri Donato e Ilarino a Camaldoli. Da sinistra: visualizzazioni delle sezione, restituite in ambiente Cad, dalla lucidatura della nuvola di punti; fase della modellazione con divisione in livelli dei vari elementi architettonici; visualizzazione ombreggiata semitrasparente del modello ultimato. Nell’immagine a fianco, spaccato prospettico.