Lezione 17: Grafica 3D* -...
Transcript of Lezione 17: Grafica 3D* -...
![Page 1: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/1.jpg)
Lezione 3: Grafica 3D*
Informatica Multimediale
Docente:
Umberto Castellani
*I lucidi sono tratti da una lezione di Maura
Melotti ([email protected])
![Page 2: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/2.jpg)
Sommario
Il processo grafico
La modellazione 3D
Rendering
Image storage and display
![Page 3: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/3.jpg)
Introduzione: il processo grafico
3D
Modelling
3D
Animation
Definition
Image
Storage and
Display
Texture
Information
Rendering
![Page 4: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/4.jpg)
Image storage and display
Hardware
Framebuffer
Disk
File
Film
Recorder
Video
Recorder
Rendering
![Page 5: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/5.jpg)
Modelling e rendering
3D
Modelling
3D
Animation
Definition
Image
Storage and
Display
Texture
Information
Rendering
![Page 6: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/6.jpg)
MODELLING
![Page 7: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/7.jpg)
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
![Page 8: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/8.jpg)
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)
![Page 9: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/9.jpg)
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
![Page 10: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/10.jpg)
Geometria: punti
Point primitives
![Page 11: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/11.jpg)
Geometria: linee
Definite come liste di punti – “polyline” o “ line strip
![Page 12: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/12.jpg)
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.
![Page 13: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/13.jpg)
Geometria: poligoni
Most graphics systems know how to draw
only very simple convex polygons, usually
triangles.
![Page 14: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/14.jpg)
Geometria: poligoni
Triangle Strip
Quad mesh
![Page 15: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/15.jpg)
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)
![Page 16: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/16.jpg)
Superfici esplicite
Le superfici esplicite descrivono direttamente le primitive geometriche
– Poligoni o mesh: la
superficie viene
– Superfici parametriche
![Page 17: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/17.jpg)
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 memoriapotrebbe esplodere (o il loro processamento)
E‟ importante definire il livello di tessellazione
![Page 18: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/18.jpg)
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.
![Page 19: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/19.jpg)
Superfici implicite
Una superficie implicita è descritta da una funzione matematica
– Es. sfere, cilindri, coni, etc.
– Metaballs
– Isosuperfici
![Page 20: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/20.jpg)
Constructive Solid Geometry (CSG)
Sono ottenute combinando simplici solidi 3D usando le operazioni booleani (and, or, not)
![Page 21: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/21.jpg)
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)
![Page 22: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/22.jpg)
Livello di dettagli: compromesso
• modellazione più laboriosa
• rendering più lento
• occupa più memoria
Più dettaglio
Più realismo
![Page 23: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/23.jpg)
Modelling: trasformazioni
Trasformazioni:
•rotazione
•scale
•traslazione
![Page 24: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/24.jpg)
Trasformazioni: calcolo
x' = Ax + By + Cz + D
y' = Ex + Fy + Gz + H
z' = Ix + Jy + Kz + L
Equazioni lineari in forma matriciale
![Page 25: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/25.jpg)
Rotazioni
Rotation
![Page 26: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/26.jpg)
Rotazione su asse Z
3D Rotation About Z
![Page 27: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/27.jpg)
Rotazione su asse Y
3D Rotation About Y
![Page 28: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/28.jpg)
Rotazione su asse X
3D Rotation About X
![Page 29: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/29.jpg)
Scala
Scalingx' = x * Sx
y' = y * Sy
z' = z * Sz
![Page 30: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/30.jpg)
Scala
Scaling
![Page 31: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/31.jpg)
Traslazioni
x' = x + Dx
y' = y + Dy
z' = z + Dz
Translation
Translation
![Page 32: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/32.jpg)
Traslazioni
Translation
![Page 33: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/33.jpg)
Apparenza: telecamere virtuali
![Page 34: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/34.jpg)
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
![Page 35: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/35.jpg)
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)
![Page 36: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/36.jpg)
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)
![Page 37: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/37.jpg)
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
![Page 38: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/38.jpg)
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.
![Page 39: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/39.jpg)
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
![Page 40: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/40.jpg)
Interazione luce-superfici
![Page 41: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/41.jpg)
Riflessione da superfici
a) speculare b) diffusiva c) trasparente
![Page 42: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/42.jpg)
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
![Page 43: Lezione 17: Grafica 3D* - profs.sci.univr.itprofs.sci.univr.it/~castella/InfoProgMM2012-2013/Lez5_Grafica3D_1.pdf · –Poligoni (i.e., triangoli) Usando primitive multiple si generano](https://reader031.fdocuments.us/reader031/viewer/2022021913/5c68be3009d3f2d4158bd47e/html5/thumbnails/43.jpg)
Software di modellazione 3D
AutoCAD : http://www3.autodesk.com
Maya : http://www.aliaswavefront.com
Multigen : http://www.paradigms.com
3DStudio : http://www2.discreet.com