MODELLAZIONE CON XSI

In XSI, come in molti altri software, si trovano 2 tipi di superfici per modellare gli oggetti:
- NURBS surface
- Polygonal surface
Le prime sono matematicamente definite e hanno curvature regolari (molto usate per la progettazione di "precisione"), mentre le poligonali hanno una curvatura "segmentata".
Le NURBS presentano alcune difficoltà, maggiori in confronto alle superfici poligonali, nel collegare due superfici senza mostrare giunture (cuspidi).
In fase di render le superfici NURBS vengono calcolate come Polygon Surface (Tesselation) questa suddivisione delle NURBS solitamente è calcolata attraverso triangoli.
Solitamente si usano le superfici poligonali per modellazioni complesse e per modellare personaggi, attraverso i "Subdivision surface tools" è relativamente facile ottenere superfici "lisce" e regolari.
I "Subdivision surface tools" permettono, partendo da una polygonal surface dura e irregolare, una raffinazione progressiva arrotondando gli angoli e lisciando i bordi fino a ottenere una superficie regolare.

Quando si lavora in NURBS surface è possibile trasformare in Polygonal surface con il comando "Create - Poly. mesh - NURBS to Mesh", si può decidere il livello di tassellazione e anche animarlo (fino a quando non si da il comando freeze alla geometria).

Una superficie composta da poligoni è chiamata mesh, un poligono ha un minimo di 3 lati (edge) ed è chiamato "triangle", un poligono composto da 4 edges è chiamato "quad", un poligono con + di 4 edges è chiamato "n-sided polygon"... è consigliabile usare "quad" e "triangles".
Gli edge di poligoni adiacenti sono detti chiusi, gli edge aperti sono quelli che delimitano la polygonal surface.

xsi02

xsi03

xsi04

xsi05

"Vertices": sono punti collegati dagli edge, la loro posizione è definita mediante le coordinate cartesiane.

xsi01

"Normals": ogni superficie non ha uno spessore e ha una faccia "interna e esterna". In fase di render si può renderizzare solo l'interna, solo l'esterna o entrambe.
Le normali di una superficie in XSI sono visualizzate con delle linee blu che si irradiano dai vertici, per poterle visualizzare selezionare l'oggetto, cliccare sull'icona a forma di occhio e scegliere "Normal".
Per invertire il senso delle normali selezionare l'oggetto, Modify -> Surface -> inverse normals command.

xsi06

Per invertire le normali di alcuni poligoni di una mesh selezionare i poligoni, pannello "Model" -> Modify -> Poly. Mesh -> Invert Polygons.

xsi07

xsi08

Per selezionare i singoli componenti (oggetti, vertici, bordi,poligoni...) bisogna scegliere il filtro di selezione nel Main Control Panel (MCP), Cliccando sul triangolo nero nella barra del titolo si apre un menù in cui, oltre ad altre opzioni, si trovano le modalità di selezione (Tool -> Rectangle, raycast, lasso...)

xsi09a

Una volta selezionato un componente (o gruppi di compenenti) è possibile trasformarli per modellare l'oggetto, le trasformazioni possono essere in modalità Global/Local/View (cambia il sistema di riferimento degli assi).

xsi10BA

xsi10B

Model -> Modify -> Add/edit Polygon Tool: questo comando serve per creare un poligono "da zero" o per aggiungere poligoni a una mesh, quando si compie questa operazione bisogna evitare di ottenere poligoni con normali invertite (in fase di render potrebbe venir visualizzato un buco sulla mesh o altri problemi) in questo caso durante la creazione si apre una finestra di dialogo per invertire le normali, è consigliabile quando si aggiunge un poligono a una mesh di selezionare gli edge e non i vertici.

xsi11

Con il tasto destro del mouse si generano i vertici del poligono (evitate di creare poligoni con + di 4 vertici), con il tasto centrale si crea un nuovo poligono, con il tasto sinistro si interrompe il comando.
Se si attiva il tool con una mesh già esistente selezionata i nuovi poligoni faranno parte di quella mesh e se si clicca su i vertici (o edge) di questa mesh verranno "condivisi" dai 2 poligoni (quello pre-esistente e quello creato).
Solitamente per modellare un oggetto cone le polygonal surface si parte da una primitiva (Cubo, sfera, cilindro) e spostando i vertici, aggiungendo edge, duplicando poligoni si raffina la forma (controllare continuamente nella viewport "camera" o "User" come procede il modello). Quindi si tratta di un processo di perfezionamento, inizialmente si deve fare attenzione alle giuste proporzioni del modello e in seguito ai detagli. La modellazione NURBS invece richiede un approccio + "tecnico", inizialmente si individuano le linee "salienti" e attraverso queste si costruiscono le varie superfici che compongono il modello.
In ambedue i casi è sempre importante avere delle buone reference da seguire (schizzi, misurazioni, immagine da mettere a sfondo nelle viewport)

xsi12

Durante la modellazione ogni comando e trasformazione applicata alla primitiva verrà annotata nell' "Operator stack", questa memoria dei comandi però va a rallentare i processi per questo si può usare il comando Freeze (pannello MCP -> Edit -> Freeze) che azzera l'opeator stack e trasforma la primitiva in una normale Polygon mesh. Oppure si può lavorare con l'immediate mode attivato che non annota le modifiche e le trasformazioni nell'operator stack (comunque in caso di errore si può fare ricorso al comando undo)

xsi15

Extrude along Axis: questo comando serve per estrudere dei poligoni (e le curve) in relazione alla direzione delle normali, all'esecuzione del comando si aprirà una finestra di dialogo in cui poter immettere il valore di estrusione e di inset. Inoltre è possibile decidere quante suddivisioni deve avere l'estrusione e applicare le trasformazioni (scala, ruota, sposta) in combinazione all'estrusione. In alternativa a questo comando si può estrudere, in maniera + "libera", con il Translate Tool e l'hot key "Ctrl + D".

xsi16

Extrude along Curve: il comando è simile al precedente ma invece che seguire la direzione degli assi l'estrusione segue il tracciato di una curva

xsi17

Duplicating: Selezionando un vertice con l'Hotkey "Ctrl + D" si duplicano una serie di vertici attorno

xsi18

Il comando è utilizzabile anche con gli edge

xsi19

Questo comando può essere molto utile in alternativa al comando Add edge tool e add vertex tool (Modify-> Poly.Mesh) per aumentare il dettaglio di una mesh.
Split: lo Split edge tool divide in due un bordo aggiungendo un vertice (tenendo premuto il tasto ctrl si dividerà in 2 parti uguali), lo Split Polygon Tool divide il poligono in un numero di poligoni pari al numero dei suoi bordi

xsi20

Knife Tool: Questo tool serve a dividere gli oggetti mediante un piano passante per due punti e perpendicolare al piano del viewport

xsi21

Filter edges/points/Polygons: questi 3 tool servono per ridurre il dettaglio di una Polygon surface (menù "Modify - Poly.Mesh")

Bevel components: con le impostazioni di "base" serve a smussare gli spigoli di un oggetto, ma può essere usato per modifiche + complesse degli spigoli (come negli esempi dell'immagine) attraverso i parametri della finestra di dialogo.

xsi22

Edit -> Delete select: con questo comando è possibile cancellare vertici – edge – poligoni, molto usato ad esempio per creare finestre. A questo proposito introduco il discorso sulla finestra "netview" richiamabile da tastiera con "Alt+5" o in una qualsiasi finestra attraverso il menù del viewport.

xsi23

Di solito modellando con 3d studio max ero abituato a dare lo spessore (soprattutto per le pareti nei render d'interni) con il comando "Shell", il problema era che non riuscivo a trovare un comando equivalente in XSI... fortunatamente si può scaricare attraverso il "netview" e si trova in "model" -> "Create" -> "Solidify". naturalmente ci sono tanti interessanti tool (non solo per la modellazione) da poter scaricare e aggiungere alle toolbar (basta trascinare l'icona dal netview alla toolbar dove si desidera posizionare il nuovo tool)

xsi24

Collapse components: con questo comando si collassa in un vertice il componente selezionato, se il componente selezionato è un vertice collasseranno tutti gli edge collegati e per chiudere il buco che verrebbe a crearsi si formerà un nuovo poligono. Il comando "dissolve components" invece elimina il componente selezionato (se è un vertice elimina anche gli edge collegati) senza lasciare "buchi" nella mesh.

xsi25
Se l'oggetto che si sta modellando è simmetrico è conveniente modellare solo metà oggetto e una volta finito specchiarlo con il comando "Symmetrize Polygons" con il quale è possibile scegliere il piano di simmetria, decidere la distanza tra le due parti e la distanza di "weld" (fusione tra vertici vicini).
Se invece si duplica l'oggetto con il comando "Edit" -> Duplicate Symmetry" si ottengono due oggetti separati che potrenno essere uniti o con il comando "Create" -> "poli. Mesh" -> "Merge" (salda i componenti che si trovano nella stessa posizione) o con il comando "Blend" (salda anche i componenti non nella medesima posizione impostando una tolleranza)

Bridge Polygons: il comando permette di congiungere 2 poligoni di una mesh.

xsi27

Boolean: difference/intersect/union
Questi 3 comandi funzionano come "operazioni" tra due solidi che si intersecano. Il primo darà una sottrazione di volume, il secondo l'intersezione tra i 2 volumi e il terzo li "fonderà" assieme. Una volta selezionato il primo solido si da il comando booleano e si seleziona il secondo solido, a questo punto spostando uno dei due solidi il risultato può essere modificato fino a che non si farà un "freeze" della geometria.
Questi comandi sono utili e veloci, l'unico inconveniente è che spesso si generano delle mesh con "N sided polygon" (poligoni con + di 4 lati)

xsi26
Keyboard shortcuts
Come per la gran parte dei software di grafica l'uso della tastiera per dare i comandi o attivare dei tool (almeno quelli + "comuni") sveltisce il lavoro; inizialmente la cosa può risultare macchinosa e può creare qualche inconveniente quando si lavora su + software, ma presto diventa una buona abitudine ^_^
MmAaXx all'ultimo raduno di treddi.com mi ha regalato (grazie ancora :) ) una cartolina con riportati tutti i comandi da tastiera per XSI Essential e l'ho trascritta, averla stampata a portata di mano aiuta molto a memorizzare almeno i comandi + utilizzati:
Keyboard shortcuts: General tools
Keyboard shortcuts: Viewing tools
Keyboard shortcuts: Editing tools
keyboard shortcuts: Animation & transform tools

Blueprint
Come accennato in precedenza per modellare è molto utile avere dei riferimenti fotografici o dei disegni da mettere sullo sfondo o su dei piani.
Per mettere delle immagini sullo sfondo di un viewport si usa il comando "rotoscope", dalla finestra "Camera rotoscopy" con "new->new from file" si carica l'immagine.

xsi28

Una volta posizionate per ogni viewport con lo zoom, aiutandosi con i quadretti delle griglie, cercate di ingrandire le immagini in modo tale che siano ben rapportate tra loro... quando siete "soddisfatti" con l'icona a forma di "lente rettangolare" (accanto alle icone x,y,z) bloccate lo zoom dell'immagini in ogni viewport, come metodo non è molto scientifico ^_^ e può essere utile quando la modellazione non deve essere troppo accurata e precisa. Probabilmente esiste un metodo + preciso per uasre il rotoscope, ma non lo conosco :(

xsi29

Il secondo metodo è quello di creare una grid (menù "Model -> Get -> Primitive -> Polygon mesh -> Grid") per ogni viewport della grandezza dell'immagine corrispondente (o in rapporto)

xsi30
Selezionare una grid alla volta e applcare l'immagine di riferimento come texture (Menù Render -> get -> Texture -> Image), nella finestra con new caricare l'immagine, nel box "texture projection" con "new" scegliere la proiezione planare XZ.

xsi31

Se siete soddisfatti del risultato selezionate i 3 grid e cliccate su "Freeze".

xsi32

Se non sbaglio mi pare di aver spiegato un po' tutti i tool di modellazione poligonale + frequenti.

CURVE
In XSI è possibile disegnare anche delle curve e linee rette, le primitive sono:
- Arc: si può decidere il raggio, l'angolo di partenza, l'angolo di fine e la segmentazione (subdivision) dell'arco che ne definisce l'accuratezza
- Circle: si può decidere il raggio e la segmentazione del cerchio
- Spiral: si può decidere l'altezza (se si sviluppa perpendicolarmente), l'angolo d'inizio, l'angolo di fine (quindi i giri), il raggio di partenza e quello finale della spirale (che possono avere anche lo stesso valore)
- Square: si può decidere la lunghezza del lato e la segmentazione
Tutte queste proprietà possono essere modificate in qualsiasi momento finchè non si resetta la storia dell'oggetto con freeze. Se con queste curve avete costruito delle superfici andando a modificare qualche parametro (o applicare delle trasformazioni) alle curve generatrici le modifiche verranno applicate anche alle superfici.


xsi33
In "Model" -> "Create" -> "Curve" ci sono diversi tool per creare delle curve, compreso un tool di disegno a "mano libera. Nella CG le curve parametriche (o curve di Bezier) sono particolarmente importanti per la loro facilità di manipolazione, è fondamentale conoscerne le caratteristiche e "prenderci la mano" per questo vi rimando alla spiegazione riportata su wikipedia (in questa pagina ci sono molti altri link interessanti ;) ).
Un tratto di curva è formato da un punto iniziale, un punto finale e le rispettive "maniglie" con le quali è possibile controllare le curvature (o direzione) e la tangenza con altri tratti di curva. Il miglior metodo per comprendere il funzionamento di questi tool è provare a ricalcare delle forme (anche utilizzando altri software di grafica 2D e 3D).

xsi34
I tool seguenti servono per creare una curva da una curva (o da un tratto di curva) già esistente, dal bordo di una mesh, estrarre un isocurva da una superficie o (Fit on curve) ricostruire una curva cambiando i parametri di curvatura e di suddivisione.
Il tool "Blend" serve a unire i punti finali di due curve con una terza curva, è possibile decidere le condizioni di tangenza e di continuità tra le 3 curve.

xsi35

Il tool "Fillet" crea un raccordo tra due curve che hanno un punto in comune, è possibile settare il raggio del raccordo.

xsi36
Il tool "Intersect surface" consente di estrarre una curva dall'intersezione di 2 superfici

xsi37

Modellazione di un estintore

come oggetto d'esempio per questo tutorial ho scelto un estintore (inizialmente avevo scelto una penna di cui ho perso parte del file in qualche backup mentre ci lavoravo :( , ma se lo ritrovo pubblicherò anche quello! ;) ).

Per iniziare si crea un nuovo progetto: "File" - "New Project" in questo modo, scegliendo una cartella, XSI ordina all'interno una serie di sottocartelle dove memorizzare con logica tutti i file necessari per lavorare a quel progetto (è molto utile per lavorare in team, per i backup, ma anche per ritrovare facilmente i file).
Per posizionare la blueprint frontale create un grid (Model -> Get -> Primitive -> Polygon Mesh -> Grid) di 388x800 (la misura in pixel dell'immagine frontale) e con le suddivisioni a 1-1, ruotatelo di 90 gradi in X, con il tasto "3" andate nel pannello "Render", con il grid selezionato assegnategli come texture (Render -> Get -> Texture -> image) la blueprint frontale (che avrete salvato nella cartella "pictures" e scegliete (new) come piano di proiezione "Planar XZ". Per visualizzare le texture nel viewport a destra in alto di ogni viewport premendo la freccia nera che punta verso il basso comparirà il menù per la modalità di visualizzazione, scegliete textured decal.

In questo caso abbiamo solamente una blueprint, sarebbe stato comodo avere anche un'altra vista ortogonale per sapere la profondità di alcuni elementi.

e01

Ora create un cilindro (Model -> get -> Primitive -> Polygon Mesh -> Cilinder) di raggio 100, altezza 120 e con 24 suddivisioni in U. Selezionate tutti i poligoni della base superiore e applicate un bevel (Model -> Modify -> Poly. Mesh -> Bevel components) con distanza uguale a 1.

e02
Selezionate di nuovo i poligoni della base superiore del cilindro e estrudeteli di 465 unità (tasto desto -> Extrude along Axes).

e03
Quando si modella seguendo delle blueprint è comodo poterle visualizzare mentre si lavora applicando una leggera trasparenza al modello, selezionate il modello e nel pannello "Render" (tasto 3) premete il tasto "Shader" nel pannello "Modify". Nelle finestra della trasparenza scegliete un grigio molto scuro (al bianco corrisponde la trasparenza completa).

Selezionate di nuovo i poligoni della base superiore e applicate un bevel a 1.2.

e04
Selezionate i poligoni dello smusso appena creato e applicate un altro bevel a 1,2

e05

Selezionate i poligoni della base superiore e applicate un inset Polygons (tasto destro del mouse) con length=0 e Inset=10. Di nuovo tasto destro e scegliete il tool extrude along axis con Length=35

e06

e07
A questo punto il fusto principale è completo, bisogna solo aggiungere alcuni dettagli per avere una forma coerente al momento dello smooth. Selezionate l'oggetto appena creato e con il comando subdivision (Model -> Create -> Poly. Mesh -> Subdivision) create una copia dell'oggetto "ammorbidita" e spostatela accanto, andando a modificare la copia d'origine potrete vedere gli effetti direttamente nell'oggetto appena creato

e08

Con questa ultima operazione la sezione e la curvatura in alto del fusto sono + tondeggianti, ma si sono persi alcuni spigoli. Per aggiustare queste forme selezionate i bordi dell'oggetto originario (in modalità edit edge e con il tool "select edge loop") degli spigoli che volete poco stondati e applicate dei piccoli bevel… come già scritto gli effetti in subdivision li vedrete in automatico, quindi regolatevi facendo alcune prove. Anche lungo le estrusioni fatte in precedenza con il subdivision si formano dei "rigonfiamenti"; per evitarli avremo potuto aumentare le suddivisioni al momento dell'estrusione, oppure andare a aggiungere delle suddivisioni attraverso l'explorer degli operators (ma avendo applicato dei bevel potremo modificare alcune geometrie create dopo le estrusioni) e infine (scelta obbligata a questo punto) aggiungere le suddivisioni con il comando Subdivide edge.

e09

Ogni volta che avete raggiunto un risultato che vi soddisfa durante la modellazione e siete sicuri che non dovrete fare + modifiche sostanziali premete il tasto freeze in modo tale da cancellare la lista degli operators, il file sarà + leggero.

Quando si deve modellare un oggetto difficilmente esiste un'unica strada, ad esempio il corpo centrale dell'estintore essendo a sezione circolare potrebbe essere modellato attraverso una curva che ricalca metà silhouette

e10

A cui applicare il comando "Revolution around axis"

e11

Il corpo valvola posto sopra ha una forma abbastanza semplice se non si volesse scendere in alcuni dettagli, è composta infatti da 3 cilindri e un parallelepipedo intersecanti. Create il primo cilindro e posizionatelo in cima

e12

Create un cilindro + piccolo e ruotatelo di 90° in X e in Y, posizionatelo al centro del corpo valvola principale (aumentate a 2 la suddivisione della base)

e13

Duplicate quest'ultimo cilindro, ruotatelo di 90° solamente sull'asse X e posizionatelo poco + in alto e spostato di lato come in figura.

e14

Per completare il corpo valvola create un cubo, posizionatelo proprio sotto gli erogatori e scalatelo lungo l'asse Y.

e15

Dato che il corpo valvola è completamente in metallo in fase di render gli smussi sugli spigoli darebbero dei buoni effetti di riflessione e specular, quindi con il comando bevel possiamo aggiungerli (nel pannello rounding del comando impostate le Nb Subdv. a 2)

e16

Ora con il comando Model -> Create o -> Poly.Mesh -> boolean -> Union unite i 4 componenti del corpo valvola

e17

Con un cilindro create il tappo dell'erogatore frontale, impostando a 6 la suddivisione in U.

e18

Estrudete (extrude along axes) i poligoni centrali dell'erogatore laterale come in figura

e19

Per fare la rondella dentata in plastica usiamo un cilindro a cui applicare un'estrusione (frame -> component e inset maggiore di 0) edi poligoni laterali. Naturalmente + suddivisioni avrà il cilindro e migliore sarà la dentellatura

e20

Infine un cilindro a 6 facce con gli spigoli stondanti (bevel) per creare il raccordo girevole

e21

Il tubo verrà creato con una curva (percorso) e un cerchio (sezione) attraverso il comando extrusion along curve

e22

e23
Ora selezionate gli edge laterali della parte alta del corpo valvola e applicate un subdivid edge

e24

Selezionate i 2 poligoni sulla parte retrostante e estrudeteli, nel pannello transform del tool scalate lungo l'asse Z

e25

Per creare la maniglia partiremo da un cubo leggermente ruotato a cui successivamente estrudiamo una faccia, in modalità edit point modifichiamo la geometria andando a restringere l'estremità della maniglia

e26

e27

Cancelliamo alcuni poligoni in modo tale da ottenere una sezione a "U"

e28

Stondiamo gli spigoli con un bevel

e29

Per avere un maggiore dettaglio possiamo aumentare le suddivisioni della geometria, con il tool scaricato dal net view (solidify) applichiamo uno spessore e con subdivision otteniamo una geometria + smussata

e30

Per la maniglia superiore partite sempre da un cubo e modificatelo attraverso delle estrusioni

e31

Cancellate i poligoni nella parte inferiore della geometria, applicate un subdivision per avere una geometria smusatao e un solidify per lo spessore

e32

L'ultimo componente è il cono erogatore che ha l'identica stessa forma della bombola (ma senza la base superiore e inferiore) e diversa scala, quindi si potrebbe procedere con i 2 metodi visti in precedenza oppure copiando la geometria della bombola, cancellare i poligoni alla base, modificare la scala e eventualmente spostare qualche vertice per cambiare alcune proporzioni.

e33

Naturalmente si potrebbero aggiungere anche altri particolari alla modellazione, ma un dettaglio di questo genere già potrebbe bastare per un modello da texturizzare e posizionare in qualche angolo di una scena.

Spero che qualche utente + esperto di me con XSI prenda spunto da questo tutorial per poter spiegare la parte relativa agli shader, alle texture e magari anche all'illuminazione... :)
Mi scuso per gli errori e scorrettezze grammaticali (che sicuramente saranno molte :( ), ma ho scritto questo tutorial in maniera frettolosa tra 1000 impegni... spero che si capisca tutto comunque ^_^

---
Questo articolo è stato importato automaticamente dal forum il 31/lug/2014
Per vedere il post originale e/o i commenti sul forum prima di quella data clicca qui