Lezione 17: Grafica 3D* -...

43
Lezione 3: Grafica 3D* Informatica Multimediale Docente: Umberto Castellani *I lucidi sono tratti da una lezione di Maura Melotti ([email protected])

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Software di modellazione 3D

AutoCAD : http://www3.autodesk.com

Maya : http://www.aliaswavefront.com

Multigen : http://www.paradigms.com

3DStudio : http://www2.discreet.com