Informatica Grafica ][ Modellazione poligonale in Maya La tecnica di modellazione poligonale permette di costruire oggetti tridimensionali basati su poligoni. Malgrado gli oggetti poligonali siano spigolosi per definizione, tale tecnica consente di realizzare figure apparentemente curve utilizzando opportuni agloritmi di rendering. Vedremo ora le principali tecniche di modellazione poligonale. Marco Gribaudo marcog@di.unito.it Un oggetto poligonale e' costituito da 5 elementi: Vertici, spigoli e facce definiscono l'ingombro spaziale della figura. I Vertici (Vertex) Gli spigoli (Edge) Le facce (Face) Le normali (Normal) Le coordinate UV Spigolo Faccia Vertice Le normali invece, definiscono le perpendicolari alle facce dell'oggetto. Le coordinate UV invece, vengono utilizzate per posizionare correttamente le texture sugli oggetti.
In Maya si puo' scegliere su quale elemento dell'oggetto poligonale lavorare,premendo il RMB sopra l'oggetto stesso. In modaltia' vertice (Vertex) e' possibile selezionare i vertici dell'oggetto. In modalita' spigoli (Edge) e' possibile selezionare gli spigoli dell'oggetto. E con facce (Face) le facce dell'oggetto. Vertici, spigoli e facce, una volta selezionati, possono essere spostati, ruotati e cambiati di scala, esattamente come gli altri oggetti in Maya. Selezionando la modalita' oggetto (Object mode) si ritorna ad agire sull'oggetto nel suo complesso.
Sciegliendo UV e' possibile selezionare le coordinate di mappatura su cui agire. Esse pero' non possono essere modificate nella normale finestra prospettica. Esiste infatti una finestra chiamata "UV texture editor" destinata a tale scopo. Come vedremo, uno stesso vertice puo' avere normali e coordinate UV differenti, a seconda della faccia a cui e' associato. In questo caso, Maya rappresenta le facce separate, visualizzando piu' copie di uno stesso vertice, una per ogni faccia a cui esso appartiene. La modalita' Vertex Faces permette di selezionare i vertici in relazione ad una specifica faccia di appartenenza. si basa sullo spostamento di vertici, spigoli e facce di un solido. Le tecniche viste fino ad ora permettono solamente di spostare gli elementi esistenti. Vediamo ora quali tecniche si adoperano per poter aggiungere vertici, spigoli e facce. La tecnica piu' semplice per aggiungere vertici, spigoli e facce consiste nei tagli. (Split) Un taglio suddivide uno spigolo aggiungendo un vertice in un punto selezionato, oppure una faccia aggiungendo un spigolo tra due estremi selezionati.
In Maya, i tagli si eseguono utilizzando lo strumento Edit Polygons->Split polygon Tool, dopo aver selezionato l'oggetto che si vuole tagliare. Per tagliare uno spigolo, e' sufficiente far click col LMB nella posizione in cui si vuole aggiungere il nuovo vertice, e premere INVIO sulla tastiera. Il nuovo vertice potra' quindi essere spostato con i consueti comandi di Maya. Per aggiungere uno spigolo, occorre far click su due spigoli distinti di una medesima faccia, e premere invio. Se il taglio deve partire o terminare da un vertice gia' esistente, occorre tenere premuto il tasto "v" sulla tastiera, mentre si seleziona il vertice desiderato. Il taglio puo' continuare su una faccia adiacente se, invece di premere subito invio, si seleziona un punto su un altro spigolo.
Come detto in precedenza, la modellazione poligonale puo' creare l'illusione di oggetti curvi, pur utilizzando solamente solidi spigolosi, grazie a particolari tecniche di rendering. Vediamo quali sono e come funzionano. Consideriamo un oggetto triangolare fatto a forma di vela. Osservandolo dall'alto, le uniche caratteristiche che lo differenziano da un oggetto triangolare piatto sono le sfumature causate dall'illuminazione. L'oggetto piatto appare di colorazione uniforme mentre quello curvo appare sfumato. Durante il rendering, il colore dei punti dipende dalla posizione delle luci e dalle normali alla superfice nei vari punti dell'oggetto. Un oggetto "piatto", avendo la stessa normale in tutti i suoi punti, appare di colore uniforme. l n r o θ θ α
Una superficie curva, avendo normali distinte nei vari punti, appare con sfumature di colorazione differente. Immaginando che le normali di una superfice piatta cambino direzione in funzione della posizione, si vengono creare effetti di sfumatura simili a quelli che si otterrebbero se la superfice fosse veramente incurvata. Per utilizzare queste tecniche di rendering occorre specificare un normale distinta per ogni vertice di una faccia. Queste informazioni vengono utilizzate per determinare, tramite interpolazione, la direzione della normale nei punti interni della figura. Le 3 tecniche principali vengono chiamate: Flat Gouraud Phong La tecnica Flat utilizza una sola normale per faccia. Essa non e' quindi in grado di visualizzare sfumature. Essa ignora eventuali normali associate ai vertici, e utilizza le posizioni delle facce per determinarle automaticamente. La tecnica Gouraud, calcola i colori corrispondenti ai vertici, quindi interpola tra i questi colori per definire i punti interni dei triangoli.
La tecnica Phong, interpola invece le normali, in modo da calcolare una normale differente per ogni pixel. Determina quindi il colore del pixel, utilizzando la normale calcolata. La tecnica Phong e' piu' efficace rispetto alla tecnica Gouraud, in quanto e' in grado di catturare anche effetti dovuti a luci spot, che il metodo Gouraud non sarebbe in grado di catturare. In fase di modellazione si puo' far apparire una parte di un oggetto curva o spigolosa agendo sulle normali. Maya permette di definire le normali attraverso appositi comandi. Due facce adiacenti che abbiano le stesse normali sui vertici condivisi appaiono con un bordo continuo. Due facce adiacenti che abbiano normali distinte sui vertici condivisi, appaiono con un bordo spigoloso. Il comando Edit Polygons -> Normals -> Average Normals, media le normali delle facce selezionate in modo che siano le stesse per facce adiacenti. In questo modo la parte selezionata appare liscia.
Il comando Edit Polygons -> Normals -> Set to Face, imposta ogni normale di ogni vertice delle facce selezionate in modo che corrisponda a quella geometrica della faccia stessa. Conferisce quindi un aspetto spigoloso alla figura. E' anche possibile impostare manualmente una normale selezionando un vertice in modalita Vertex Faces, ed utilizzando il comando Edit Polygons -> Normals -> Set Vertex Normal []. Rendering in DirectX Le DirectX dispongono solamente delle tecniche di rendering Flat e Gouraud. La tecnica Phong puo' essere emulata utilizzando i Pixel Shader (disponibili a partire dalla versione 8). Il loro utilizzo, di notevole complessita', non verra' trattato in questo corso. Rendering in DirectX La modalita' Flat viene impostata con il seguente comando: Rendering in DirectX La modalita' Gouraud viene invece impostata con il seguente comando: Rendering in DirectX Quando si utilizza la modalita' Gouraud con le DirectX, ad ogni vertice dev'essere associata una normale. Un vertice che abbia due normali distinte in Maya, deve essere codificato nelle DirectX con due vertici distinti (stesse coordinate, ma normali diverse).
Rendering in DirectX In modalita' Gouraud un cubo dev'essere definito mediante 24 vertici (invece di 8)! Ogni vertice deve essere infatti replicato 3 volte: uno per ogni faccia distinta.