Informatica Grafica per le arti Introduzione alla Grafica 3D Il processo di lavorazione La realizzazione di grafica tridimensionale e' un processo molto complicato che richiede notevole potenza di calcolo. Generare un'immagine tridimensionale puo' richiedere molto tempo. Marco Gribaudo [email protected] Il processo di lavorazione Il processo di lavorazione Il processo di lavorazione viene quindi suddiviso in due fasi: La costruzione consiste nella definizione del "mondo virtuale" che si vuole rappresentare. Costruzione (modellazione) Generazione (simulazione e rendering) E' la fase che richiede piu' lavoro da parte del disegnatore, ma non impegna particolarmente il computer. Il processo di lavorazione Il processo di lavorazione La fase di costruzione e' a sua volta suddivisa in numerose attivita' distinte. Le piu' importanti sono: Modellazione Texturing - Illuminazione - Rendering Rigging - Blocking - Animazione - Clothing Dinamica - Special EFX - Compositing... Le attivita' della fase di costruzione servono solamente a definire il mondo virtuale. Una volta che esso e' stato costruito, occorre "rappresentarlo". Ogniuna di esse richiede abilita' distinte e competenze specifiche! La fase di generazione esegue le operazioni (matematiche) necessarie per creare gli elementi con i quali produrre una vista del mondo modellato. Il processo di lavorazione Il processo di lavorazione Questa fase richiede un grandissimo lavoro da parte del computer (in alcuni casi occorrono anche giorni). Molte delle attivita' svolte nella fase di costruzione (Rendering - Clothing Dinamica - Special EFX - Compositing...) hanno associata una fase di generazione. Il disegnatore deve solamente "aspettare" che il computer abbia finito di generare l'immagine. Normalmente questa attivita' prende il nome di rendering (nel caso di Rendering e Compositing) o di simulazione (nel caso di Clothing, Dinamica o Special EFX). Il processo di lavorazione Il processo di lavorazione La Modellazione si occupa della definizione dei modelli tridimensionali che compongono una scena. Il Texturing "dipinge" i modelli applicando immagini opportunamente disegnate od acquisite. Esistono numerose tecniche di modellazione. Le principali si chiamano: poligonale, NURBS e subdivison surface. Una componente fondamentale di tale lavoro consiste nello stabilire il modo in cui le immagini vengono applicate sui modelli 3d (definizione delle coordinate di mappatura). Il processo di lavorazione Il processo di lavorazione Nella fase di Illuminazione si stabiliscono le fonti luminose che illuminano la scena. Nel Rendering si stabilisce il modo in cui le texture reagiscono alle sorgenti luminose che le illuminano. Vi sono numerosi modi in cui si puo' illuminare una scena per ottenere effetti piu' o meno realistici. L'esperto di illuminazione conosce queste tecniche e sa selezionare quella piu' opportuna. Il compito di questa fase e' di fare in modo che i modelli sembrino costituiti da materiali specifici e presentino il livello di realismo desiderato. Inoltre, l'esperto di rendering sa come ottimizzare una scena per ridurne il tempo di generazione. Il processo di lavorazione Il processo di lavorazione Una volta costruiti i modelli ed applicate loro le texture, occorre "muoverli" per creare un'animazione. Il Blocking stabilisce la posizione nella scena dei vari modelli tridimensionali che la compongono. Nella fase di Rigging, si stabiliscono i controlli che un animatore avra' a disposizione per posizionare i modelli. Esso determina anche la posizione delle inquadrature e gli spostamenti delle "cineprese virutali" che riprendono la scena. Il processo di lavorazione Il processo di lavorazione L'Animazione crea i movimenti veri e proprii dei modelli tridimensionali, utilizzando i controlli creati nella fase di rigging. Per quanto un animatore possa essere bravo, non riuscira' mai a rendere un livello di realismo elevato nel simulare alcune (anche semplici) leggi fisiche. Vi sono diversi livelli di animazione: si parla generalmente di animazioni primarie (es. lo spostamento degli arti di un personaggio durante una camminata) e secondarie (es. le palpebre degli occhi). Nella fase di Dinamica, vengono associate proprieta' fisiche ai modelli, in modo che opportuni strumenti software possano simulare il loro comportamento in caso di urti, deformazioni, forze etc. Il processo di lavorazione Il processo di lavorazione Quando si creano personaggi virtuali, e li si "veste" con modelli di indumenti, questi possono risultare molto difficili da animare in modo realistico. Altre due fasi di creazione che si utilizzano quando si creano personaggi sono quelle di Hair e di Fur. Nella fase di Clothing si utilizzano particolari strumenti capaci di simulare le leggi fisiche che deformano i vestiti al fine di ottenere animazioni piu' realistiche. La prima definisce come simulare la dinamica che muove capelli, acconciature, corde ed altre superfici filiformi. La seconda invece simula superfici pelose, come le pellicce degli animali. Il processo di lavorazione Il processo di lavorazione Se poi la scena e' composta da un gran numero di elementi "coscenti" (un pubblico, un esercito, una mandria di animali), diventa praticamente impossibile animarli singolarmente. Gli Special EFX si occupano invece di creare effetti speciali come fuoco, fumi, fluidi, scarice elettriche. Con le tecniche di Crowd si associano semplici movimenti ed elementi di intelligenza artificiale per creare automaticamente questo tipo di animazioni. Per creare questi si utilizzano strumenti particolari come emettitori di particelle, contenitori di fluidi. Il processo di lavorazione Il processo di lavorazione Una volta creati tutti i singoli elementi separatamente, occorre metterli insieme per generare la scena finale. Ormai quasi tutti i programmi di grafica di alto livello (3D Studio, Maya, Lightwave, XSI, Blender, Renderman, Cinema 4D...) mettono a disposione strumenti per realizzare quasi tutte le fasi riportate in precedenza! Nella fase di Compositing si miscelano i vari elementi definiti in precedenza per creare il filmato definitivo. Introduzione a Blender Blender e' un programma per la creazione e l'animazione di modelli tridimensionali open-source, ed e' uno degli strumenti piu' diffusi. Pur non essendo un pacchetto a pagamento, esso e' uno strumento estremamente potente, ma anche piuttosto complesso. E' quindi diventato ormai praticamente impossibile conoscere a fondo il funzionamento di tali strumenti. Generalmente ogni esperto si limita padroneggiare le modalita' in cui questi vengono sfruttati nella fase di sua comptenza. Introduzione a Blender La sua interfaccia grafica e' suddivisa in finestre, liberamente configurabili. Introduzione a Blender Ogni finiestra e' contraddistinta da una parte chiamata "barra del titolo", dove sono posti una serie di controlli standard. Introduzione a Blender Ogni pagina di lavoro e' dotata di una sua propria barra dei menu, e di una serie di pulsanti. Introduzione a Blender In particolare e' possibile selezionare quale pagina di lavoro andare a visualizzare in quella finestra. Introduzione a Blender I menu possono essere nascosti premendo il triangolino alla loro sinistra. Introduzione a Blender Introduzione a Blender Alcune pagine di lavoro sono divise in pannelli (es. la pagina "Buttons") che possono a loro volta essere suddivisi in sotto-pannelli. Questi si selezionano attraverso i pulsanti a fianco dei menu. Alcuni pannelli sono a loro volta suddivisi in schede, aumentando ulteriormente il numero di voci proposte all'utente. Pannelli Sotto-pannelli Introduzione a Blender E' possibile variare la dimensione di una finestra posizionando il mouse sul suo bordo e premendo LMB (pulsante sinistro del mouse). Introduzione a Blender Esistono una serie di Layout predefiniti, selezionabili dall'apposito menu' a tendina. Introduzione a Blender Si possono aggiungere e rimuovere finstre suddividendole o combinandole attraverso il menu contestuale che si ottiene premendo il RMB (tasto destro del mouse) sul loro bordo. Introduzione a Blender E' possibile creare nuovi Layout selezionando la voce "ADD NEW". L'opzione "Empty" creera' un nuovo layout vuoto, mentre invece "Duplicate" duplichera' quello corrente. Introduzione a Blender La visualizzazione 3D I Layout non utilizzati, possono essere rimossi semplicemente premendo il pulsante a forma di croce dopo averli selezionati. La schermata principale di lavorazione e' quella denominata 3D View. Essa fornisce una vista di cio' che sta venendo modellato nello spazio tridimensionale. E' fondamentale imparare a cambiare il punto di vista, in modo da poter osservare gli oggetti 3D da angolazioni diverse. La visualizzazione 3D La visualizzazione 3D Per l'interazione con la schermata 3D, Blender richiede l'utilizzo di un Mouse a 3 tasti (meglio ancora con la rotellina, che generalmente puo' essere premuta per ottenere la pressione del terzo tasto). Qualora il vostro mouse non disponga del tasto centrale, e' possibile premere ALT+LMB per emularlo. RMB MMB MMB = LMB ALT + LMB La visualizzazione 3D La visualizzazione 3D Il movimento del mouse combinato alla pressione del tasto centrale (MMB), o della combinazione per emularlo (ALT + LMB), permette di ruotare la visualizzazione. La rotazione e' differente a seconda che ci si prema il tasto partendo dal centro o dai bordi dello schermo. La visualizzazione 3D La visualizzazione 3D Per translare la visualizzazione, occorre premere SHIFT + MMB (o SHIFT + ALT + LMB) muovendo il mouse. Lo zoom si effettua premendo CTRL + MMB (o CTRL + ALT + LMB) muovendo il mouse in verticale, oppure ruotando la rotellina. La visualizzazione 3D Se si perdono di vista gli oggetti, e' sempre possibile centrare la visuale su tutti gli oggetti della scena slezionando la voce "View All" dal menu "View", oppure premendo il tasto HOME sulla tastiera. Proiezioni Lo schermo del calcolatore e' in grado di visualizzare immagini bidimensionali. In grafica 3D si modellano oggetti in tre dimensioni. Le proiezioni sono un meccanismo con cui costruire una vista bidimensionale di un mondo tridimensionale. Proiezioni Esistono due classi principali di proiezioni: Proiezioni parallele Proiezioni prospettiche La visualizzazione 3D I comandi di traslazione, zoom e mostra tutto, funzionano su tutte le visuali e non solamente su quella 3D. Questo puo' essere utile per mostrare le opzioni non immediatamente visibili in un pannello. Proiezioni Ogni proiezione e' caratterizzata da un insieme di raggi di proiezione e da un piano di proiezione. La visione 2D del mondo 3D corrisponde all'intersezione dei raggi di proiezione con il piano di proiezione. Proiezioni Nelle proiezioni parallele i raggi di proiezione sono tutti paralleli tra loro. Proiezioni Nelle proiezioni prospettiche i raggi di proiezione non sono paralleli, ma passano tutti per uno o piu' punti. Proiezioni Le proiezioni parallele si dividono a loro volta in due sottoclassi: Ortografiche Oblique Proiezioni Proiezioni Nelle proiezioni ortografiche i raggi di proiezione sono perpendicolari al piano di proiezione. Nelle proiezioni oblique i raggi di proiezione sono inclinati rispetto al piano di proiezione. Proiezioni Proiezioni Le proiezioni ortografiche piu' importanti sono le proiezioni ortogonali. In questo caso i raggi di proiezione sono perpendicolari alle superfici pricipali dell'oggetto. Esistono 6 tipi diversi di proiezione ortogonale, ma normalmente ne vengono utilizzati solamente 3: Prospetto Profilo Pianta Proiezioni Il prospetto corrisponde ad una visione "frontale" dell'oggetto. In Blender prende il nome di Front. Proiezioni Il profilo mostra l'oggetto visto lateralmente. In Blender e' chiamata Side. Proiezioni In Blender le proiezioni ortogonali si selezionano dal menu View. Proiezioni La pianta visualizza invece una visione "dall'alto" dell'oggetto stesso. In Blender, essa e' denominta Top. Proiezioni Normalmente le tre proiezioni ortogonali vengono rappresentatte contemporaneamente in modo da dare una visione globale dell'oggetto. Blender pero' non dispone di una visuale simile di default, ed essa va costriuta suddividendo le finestre come visto prima. Proiezioni L'assonometria isometrica e' una proiezione ortografica in cui i raggi non sono perpendicolari alle direzioni principali dell'oggetto raffigurato. Questo tipo di rappresentazione e' in grado di visualizzare tutte le facce di un oggetto contemporaneamente. Proiezioni In assonometria isometrica i tre assi formano un angolo di 120 gradi l'uno con l'altro. Proiezioni La proiezione obliqua piu' importante e' detta assonometria cavaliera. Proiezioni Proiezioni In questo caso gli assi x e y vengono rappresentati come nella proiezione ortogonale frontale. L'asse z viene raffigurato lungo una retta a 45 gradi. Le lunghezze lungo l'asse z vengono dimezzate. Proiezioni Proiezioni Le proiezioni assonometriche in Blender si ottengono ruotando una visuale parallela. Le proiezioni prospettiche sono caratterizzate dal numero di punti da cui partono i raggi di proiezione: Frontale Accidentale Razionale Proiezioni Proiezioni Nelle visioni frontali esiste un solo centro di proiezione. Le visioni accidentali hanno due centri di proiezione. Proiezioni Proiezioni Tre centri di proiezione contraddistinguono le proiezioni razionali. Livelli di qualita' Per fornire in tempi ragionevoli delle anteprime dei modelli su cui si sta lavorando, i programmi permettono di scegliere tra diverse tecniche di visualizzazione. Ogni tecnica determina la complessita' dei calcoli necessari a visulizzare gli oggetti. In blender, ogni visuale puo' essere cambiata da ortogonale a prospettica utilizzando le apposite voci del menu View. Livelli di qualita' In Blender, i livelli di qualita' vengono impostati da un apposito pulsante sulla barra della visuale 3D. Livelli di qualita' In modalita' bounding box, tutti gli oggetti vengono approssimati da parellelepipedi che ne determinano l'ingombro. Livelli di qualita' La tecnica solid visualizza con colorazione uniforme le facce degli oggetti. Livelli di qualita' In modalita' wireframe vengono mostrati solamente i contorni degli oggetti. Livelli di qualita' In modalita' shaded viene effettuato il calcolo delle luci, tenendone conte nelle sfumature. In assenza di luci, gli oggetti apriranno neri. Livelli di qualita' Livelli di qualita' Se vi sono delle immagini posizionate sugli oggetti, esse vengono visualizzate in modalita' textured. Il rendering finale aggiunge tutti quegli effetti di luce e di ombre, complessi da simulare in tempo reale, che rendono l'immagine generata piu' realistica. Livelli di qualita' Esso si ottiene premendo un pulsante inserito in una speciale sotto-scheda della pagina Buttons.