INprospettiva

Crea. Visualizza. Comunica.

Archivi delle etichette: tasselizzazione

Visualizzazione e approssimazione

Cari amici, adesso faremo un passo indietro per capire meglio alcuni concetti fondamentali che riguardano la modellazione poligonale. Gli argomenti che tratteremo sono: il rendering e la visualizzazione. Forse potranno sembrarvi slegati dalla teoria relativa alla modellazione propriamente detta, in realtà la comprensione di questi ultimi vi consentirà di comprendere meglio l’argomento in questione.

Il rendering, come abbiamo già affermato nei precedenti tutorials, è il processo attraverso il quale è possibile generare un’immagine 2D, partendo da una scena 3D. La conversione degli elementi 3D presenti nella scena stessa e la loro traduzione in immagini raster (immagini composte da pixel) dipende da una serie di variabili. Ne esistono parecchie, ma quella  che più delle altre determina la corretta e al tempo stessa diversa traslazione è rappresentata dagli algoritmi di visualizzazione. Sebbene questi siano molteplici, tra i tanti vogliamo citarne alcuni: wireframe, flat, phong, scanline, ray-tracing e radiosity. L’utilizzo di ogni algoritmo permette una differente visualizzazione, adatta alle necessità dell’utente di volta in volta diverse. Sarà, così, possibile passare dalla semplice vista in  “fil di ferro” ad una fotorealistica.

Grazie all’ottimizzazione degli stessi algoritmi nel corso degli ultimi anni, alla continua ricerca e alla crescita della potenza di calcolo dei computer, oggi alcuni di questi sono perfettamente fruibili e utilizzabili in tempo reale all’interno del software. Naturalmente tutto ciò è legato al numero e alla complessità degli elementi 3D presenti nella scena, oltre che alla potenza dell’hardware a disposizione.

Sicuramente vi starete chiedendo cosa c’entra la modellazione in tutto ciò! Ve lo spiegheremo introducendo un problema: l’impossibilità di renderizzare delle superfici curve tramite uno qualsiasi degli algoritmi precedentemente introdotti.

Dato che il fine della modellazione poligonale è quello di creare oggetti, approssimandoli quanto più verosimilmente alla realtà, si è cercato di superare il precedente ostacolo ricorrendo a una metodologia chiamata tasselizzazione/discretizzazione, che consente di rappresentare anche delle superfici curve (nella realtà non esistono oggetti propriamente perfetti, tutti più o meno presentano un arrotondamento).

Attraverso la tasselizzazione un qualsiasi oggetto 3D, poligonale e non, è sottoposto a un processo di discretizzazione (termine che indica la traduzione di modelli matematici ed equazioni continue nelle controparti discrete). Il risultato ottenuto da tale attività è la conversione dei modelli 3D in un insieme di triangoli, con intervalli regolari, indispensabili per la corretta interpretazione realizzata dagli algoritmi di visualizzazione.

La modellazione poligonale (in particolare la fase di creazione del modello 3D) consta anche di uno step detto suddivisione, che consente la trasformazione di un oggetto costituito da un ridotto numero di poligoni in un oggetto complesso, i cui poligoni possono essere aumentati attraverso il processo di tasselizzazione.

I parametri che controllano la suddivisione consentono di approssimare, più o meno e in base alle esigenze, la visualizzazione e trasformazione degli oggetti: sarà così possibile modificare una geometria con pochi poligoni, ottenendone una più complessa e articolata.

Esistono varie tipologie di suddivisione/approssimazione, ne ricordiamo alcune: Catmull Clark, Doo-Sabin, Butterfly, ecc.

Con quest’ultimo articolo abbiamo completato la parte introduttiva del nostro tutorial. A partire dalle prossime lezioni scenderemo nel dettaglio operativo della modellazione poligonale. Naturalmente la materia sino a questo momento affrontata non si esaurisce in poche righe, in realtà, ci sarebbero altre nozioni che varrebbe la pena approfondire, così da integrare la materia presentata. A tal proposito, topologia, soft edge, control cage, artefatti, ecc. sono alcuni degli argomenti che affronteremo nei prossimi tutorials.