Lezione 3: Grafica 3D* Informatica Multimediale Docente: Umberto Castellani *I lucidi sono tratti da una lezione di Maura Melotti (m.melotti@cineca.it)
Sommario Il processo grafico La modellazione 3D Rendering Image storage and display
Introduzione: il processo grafico 3D Modelling 3D Animation Definition Rendering Texture Information Image Storage and Display
Image storage and display Rendering Hardware Framebuffer Disk File Film Recorder Video Recorder
Modelling e rendering 3D Modelling 3D Animation Definition Rendering Texture Information Image Storage and Display
MODELLING
Modellazione 3D La modellazione 3D: è il processo di descrizione di un oggetto o una scena al fine di poterla disegnare Struttura: Definizione geometrica Trasformazioni 3D Apparenza: Definizione telecamere virtuali Definizione sorgenti di luce Definizione proprietà dei materiali
Struttura e apparenza La struttura viene descritta principalmente dalla geometria degli oggetti e dalla loro posizione reciproca (posizionamento nello spazio 3D). L apparenza descrive come la superficie del modello interagisce con la luce (colore, riflessi e trasparenze)
Geometria La geometria degli oggetti viene definita dalle seguenti primitive grafiche (i.e., i mattoni che costituiscono l oggetto): Punti Linee Poligoni (i.e., triangoli) Usando primitive multiple si generano oggetti complicati, ovvero le scene complesse sono composte da moltissimi blocchi di primitive E importante il livello di dettaglio (LOD) 12 poligoni 72000 triangoli
Geometria: punti Point primitives
Geometria: linee Definite come liste di punti polyline o line strip
Geometria: poligoni Es: Triangoli sono sempre convessi è il più semplice tipo di poligono è planare Many graphics systems have separate primitives for triangles that are more efficient than the general polygon primitives.
Geometria: poligoni Most graphics systems know how to draw only very simple convex polygons, usually triangles.
Geometria: poligoni Quad mesh Triangle Strip
Geometria: tipi di modelli E possibile generare le primitive geometriche specificando differenti tipi di modelli: Superfici esplicite Superfici implicite Constructiove Solide Geometry (CSG) Altri più avanzati..(i.e., superfici di suddivisione, modelli deformabili, modelli autogenerativi, ect.) Generalmente si modella solo la parte visibile degli oggetti (i.e., le superfici) in altre applicazioni è utile modellare anche gli interni (es: in ambito medico)
Superfici esplicite Le superfici esplicite descrivono direttamente le primitive geometriche Poligoni o mesh: la superficie viene Superfici parametriche
Mesh poligonali la superficie viene scomposta in un insieme di poligoni, solitamente triangoli ottenendo una tessellazione Servono molti triangoli per definire oggetti con una geometria complicata e dunque la memoria potrebbe esplodere (o il loro processamento) E importante definire il livello di tessellazione
Superfici parametriche Ci sono diverse funzioni matematiche che descrivono particolari superfici curve Si usano piccole regioni o patches Come nella tessellazione pologonale si effettua una tessellazione di patch di curve Sono definite da punti di controllo Esempi: bezier, Hermite, B-spline, Nurbs, ectc.
Superfici implicite Una superficie implicita è descritta da una funzione matematica Es. sfere, cilindri, coni, etc. Metaballs Isosuperfici
Constructive Solid Geometry (CSG) Sono ottenute combinando simplici solidi 3D usando le operazioni booleani (and, or, not)
Livello di dettaglio Le superfici più complesse hanno bisogno di più triangoli per essere rappresentate Maggiore è il numero di triangoli e migliore è la capacità del modello di rappresentare i dettagli Livello di dettaglio (level of detail)
Livello di dettagli: compromesso Più dettaglio Più realismo modellazione più laboriosa rendering più lento occupa più memoria
Modelling: trasformazioni Trasformazioni: rotazione scale traslazione
Trasformazioni: calcolo Equazioni lineari in forma matriciale x' = Ax + By + Cz + D y' = Ex + Fy + Gz + H z' = Ix + Jy + Kz + L
Rotazioni Rotation
Rotazione su asse Z 3D Rotation About Z
Rotazione su asse Y 3D Rotation About Y
Rotazione su asse X 3D Rotation About X
Scala x' = x * Sx y' = y * Sy Scaling z' = z * Sz
Scala Scaling
Traslazioni x' = x + Dx y' = y + Dy z' = z + Dz Translation Translation
Traslazioni Translation
Apparenza: telecamere virtuali
Telecamera Nel passare dal 3D al 2D c è perdita di informazione Occorre definire: Da dove si osserva (view point) Su cosa si osserva (look at point) Orientazione della telecamera (view direction) Regole di proiezione: ortografica Proiettiva clipping
Telecamera: proiezioni Ortografica: gli oggetti vengono mappati sul piano immagine senza variariazione di dimensione Proiettiva: si emula la fisica del sistema proiettivo (gli oggetti lontani sono più piccoli) È importante definire i parametri di proiezione come la focale (zoom)
Proiezione: frustrum e clipping Nel definire la telecamera si deve specificare il cono di vista (i.e., frustrum) Si determina dal parallelepipedo tra il piano più vicino e il piano più lontano Gli elementi della scena che non cadono dentro al frustrum non vengono proiettati (fase di clipping)
Apparenza: illuminazione L essere umano è molto sensibile alla luminosità Dalla variazione della luminosità si percepisce la forma 3D di un oggetto La modellazione delle luci della scena si occupa del loro posizionamento e del tipo
Tipi di illuminazione Directional Light: is specified with only a direction and an intensity which apply everywhere in the scene (sunlight). Point Light: all light comes from one point. Spotlight: it has a shade around it so that it shines only in a cone. Ambient Light: it models the light that is scattered about by bouncing off other objects.
Apparenza: proprietà dei materiali Nel modellare un oggetto è importante definire le proprietà del materiale che lo compone Tali proprietà condizionano l apparenza dell oggetto nel momento in cui viene colpito dalla luce Le proprietà principali sono: Colore Riflettanza rugosità demo
Interazione luce-superfici
Riflessione da superfici a) speculare b) diffusiva c) trasparente
Sorgenti di Luce sorgente estesa (lampadina): Funzione di illuminazione I(x,y,z, u, f, l) il contributo totale sulla superficie si ottiene integrando nello spazio
Software di modellazione 3D AutoCAD : http://www3.autodesk.com 3DStudio : http://www2.discreet.com Maya : http://www.aliaswavefront.com Multigen : http://www.paradigms.com