Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI...
Transcript of Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI...
![Page 1: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/1.jpg)
Knowledge Aided
Engineering Manufacturing
and Related
Technologies
Computer Graphics Michele Antolini [email protected] 09/03/2012
![Page 2: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/2.jpg)
KAEMaRT Michele ANTOLINI
Prime applicazioni di computer graphics
Sketchpad • 1963 - Ivan Sutherland
sviluppa una delle prime GUI (Graphical User Interface) utilizzando un plotter 2D e una penna luminosa, sviluppando il concetto innovativo di oggetti e istanze
![Page 3: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/3.jpg)
KAEMaRT Michele ANTOLINI
Prime applicazioni di computer graphics
Sketchpad • La tesi di dottorato di
Sutherland è stata la base per i moderni software per il Computer Aided Design (CAD), per la programmazione object oriented e, in generale, per le Graphical User Interfaces (GUI)
![Page 4: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/4.jpg)
KAEMaRT Michele ANTOLINI
Sketchpad AN INTRODUCTORY EXAMPLE 23
Figure 1.5: (Originally on page 15.)
• I segmenti sono congiunti per via di un vincolo matematico
• Non hanno semplicemente le stesse coordinate numeriche!
• Basi della modellazione parametrica (oltre gli scopi del corso)
![Page 5: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/5.jpg)
KAEMaRT Michele ANTOLINI
Sketchpad AN INTRODUCTORY EXAMPLE 23
Figure 1.5: (Originally on page 15.)
![Page 6: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/6.jpg)
KAEMaRT Michele ANTOLINI
Sketchpad
AN INTRODUCTORY EXAMPLE 23
Figure 1.5: (Originally on page 15.)
![Page 7: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/7.jpg)
KAEMaRT Michele ANTOLINI
Sketchpad
AN INTRODUCTORY EXAMPLE 23
Figure 1.5: (Originally on page 15.)
![Page 8: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/8.jpg)
KAEMaRT Michele ANTOLINI
Sketchpad
AN INTRODUCTORY EXAMPLE 23
Figure 1.5: (Originally on page 15.)
![Page 9: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/9.jpg)
KAEMaRT Michele ANTOLINI
Sketchpad
AN INTRODUCTORY EXAMPLE 23
Figure 1.5: (Originally on page 15.)
![Page 10: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/10.jpg)
KAEMaRT Michele ANTOLINI
Sketchpad
AN INTRODUCTORY EXAMPLE 23
Figure 1.5: (Originally on page 15.)
![Page 11: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/11.jpg)
KAEMaRT Michele ANTOLINI
Sketchpad
AN INTRODUCTORY EXAMPLE 23
Figure 1.5: (Originally on page 15.)
![Page 12: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/12.jpg)
KAEMaRT Michele ANTOLINI
Sketchpad
• Sketchpad si può inoltre considerare il primo esempio di software per la gra!ca vettoriale (vector graphics)
• La tesi di Sutherland è disponibile online all'indirizzo:
http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-574.pdf
• Biogra!a di Ivan Sutherland
http://en.wikipedia.org/wiki/Ivan_Sutherland
![Page 13: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/13.jpg)
KAEMaRT Michele ANTOLINI
Gra!ca 2D
• La gra!ca 2D si de!nisce generalmente come generazione di immagini digitali basata su calcolatore
• Rappresenta generalmente modelli geometrici (2D), testo, immagini digitali
• Si divide in: • Pixel Art: ogni immagine visualizzata è concepita come un insieme
(ordinato) di punti (detti pixel, da picture element). Ogni manipolazione modi!ca il colore di pixel speci!ci. Un'immagine de!nita come griglia di punti si de!nisce raster graphics.
• Gra!ca Vettoriale: le immagini sono generate a partire da primitive geometriche come punti, linee, curve, poligoni, basandosi su funzioni matematiche
![Page 14: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/14.jpg)
KAEMaRT Michele ANTOLINI
Raster vs Vector
Fonte: Wikipedia
![Page 15: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/15.jpg)
KAEMaRT Michele ANTOLINI
Gra!ca 2D
• Pixel: un pixel è la più piccola unità rappresentabile su uno schermo
• Immagine: un’immagine è un oggetto bidimensionale formato da un insieme ordinato (per righe e per colonne) di pixel
![Page 16: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/16.jpg)
KAEMaRT Michele ANTOLINI
Gra!ca 2D
• Rasterizzazione: la rasterizzazione è un’operazione che permette di trasformare gra!ca vettoriale (descritta matematicamente) in un’immagine
• Ad ogni pixel viene associato un colore
![Page 17: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/17.jpg)
KAEMaRT Michele ANTOLINI
Gra!ca 3D
• Tassellazione: si può considerare l’equivalente 3D della rasterizzazione.
• Dalla rappresentazione matematica di un elemento (segmento, curva, super!cie) se ne genera un’approssimazione formata da triangoli
![Page 18: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/18.jpg)
KAEMaRT Michele ANTOLINI
Gra!ca 3D
• Le applicazioni della gra!ca 3D si basano sulla rappresentazione tridimensionale di funzioni geometriche (punti, linee, curve, super!ci, solidi) e ne forniscono la rappresentazione su schermo tramite proiezioni bidimensionali, dette rendering
• Rendering: processo di generazione di un'immagine a partire da un modello tridimensionale
• Per effettuare l'operazione è necessario speci!care: • Geometria • Punto di vista e !eld of view (FOV) • Texture (letteralmente “tessuto”) • Illuminazione • Shading (letteralmente “ombreggiatura”)
![Page 19: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/19.jpg)
KAEMaRT Michele ANTOLINI
PROIEZIONE PROSPETTICA
![Page 20: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/20.jpg)
KAEMaRT Michele ANTOLINI
Proiezione prospettica
• Frustum: solido troncato da due piani paralleli.
• Si utilizza la de!nizione di una piramide a base quadrata e dei piani near e far per racchiudere la scena visibile dal punto di vista dell’utente (posto all’apice della piramide) e proiettarla in una !nestra (viewport) di dimensioni speci!cate (top, bottom, left, right)
![Page 21: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/21.jpg)
KAEMaRT Michele ANTOLINI
Proiezione prospettica / 2
• Frustum: solido troncato da due piani paralleli.
• Si può de!nire il volume di rendering speci!cando le dimensioni della viewport (width e height), le distanze near e far e l’angolo coperto dal campo visivo lungo l’asse Y ( Field Of View Y)
![Page 22: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/22.jpg)
KAEMaRT Michele ANTOLINI
Proiezione ortogonale parallela
• La proiezione ortogonale di una scena racchiusa in un parallelepipedo ha la caratteristica di conservare il parallelismo delle rette indipendentemente dal punto di vista
![Page 23: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/23.jpg)
KAEMaRT Michele ANTOLINI
Rendering
• De!nendo geometria, punto di vista e campo visivo è possibile proiettare la scena 3D su un piano per calcolarne la rasterizzazione
Centro di proiezione
A
B A’
B’
Piano di proiezione
![Page 24: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/24.jpg)
KAEMaRT Michele ANTOLINI
TEXTURE MAPPING
![Page 25: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/25.jpg)
KAEMaRT Michele ANTOLINI
Texture mapping
• Applicazione di un’immagine bidimensionale (detta texture) sulla super!cie di un oggetto 3D.
![Page 26: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/26.jpg)
KAEMaRT Michele ANTOLINI
Texture mapping
• Applicare una texture signi!ca generare una corrispondenza tra un punto su una super!cie 3D ed un altro su un’immagine bidimensionale
• Non esiste un modo univoco per risolvere il problema
http://www.siggraph.org/education/materials/HyperGraph/hypergraph.htm
![Page 27: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/27.jpg)
KAEMaRT Michele ANTOLINI
Texture mapping
• È possibile mappare, ad esempio, le coordinate parametriche (u,v) di una super!cie con le coordinate della texture (normalizzati tra 0 e 1)
http://www.siggraph.org/education/materials/HyperGraph/hypergraph.htm
![Page 28: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/28.jpg)
KAEMaRT Michele ANTOLINI
Texture mapping
• Utilizzando una mappatura non lineare è possibile ottenere diversi effetti
http://www.siggraph.org/education/materials/HyperGraph/hypergraph.htm
![Page 29: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/29.jpg)
KAEMaRT Michele ANTOLINI
Texture mapping - Proiezione
http://www.siggraph.org/education/materials/HyperGraph/hypergraph.htm
• Un’altra tecnica si basa invece sulla proiezione della geometria su un piano
![Page 30: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/30.jpg)
KAEMaRT Michele ANTOLINI
Texture mapping - Proiezione
http://www.siggraph.org/education/materials/HyperGraph/hypergraph.htm
• La coordinata ortogonale al piano di proiezione viene ignorata durante l’applicazione della texture
![Page 31: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/31.jpg)
KAEMaRT Michele ANTOLINI
Texture mapping – Cylinder mapping
http://www.siggraph.org/education/materials/HyperGraph/hypergraph.htm
• Chiusura della texture su sé stessa (a formare un cilindro) e trasformazione delle coordinate x,y,z in coordinate cilindriche ( r, theta, altezza)
![Page 32: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/32.jpg)
KAEMaRT Michele ANTOLINI
Texture mapping – Cylinder mapping
http://www.siggraph.org/education/materials/HyperGraph/hypergraph.htm
• Dopo la trasformazione in coordinate cilindriche, la r viene ignorata (tutti i punti della geometria con uguali theta e altezza hanno lo stesso colore)
![Page 33: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/33.jpg)
KAEMaRT Michele ANTOLINI
Texture mapping – Cylinder mapping
http://www.siggraph.org/education/materials/HyperGraph/hypergraph.htm
• Dopo la trasformazione in coordinate cilindriche, la r viene ignorata (tutti i punti della geometria con uguali theta e altezza hanno lo stesso colore)
![Page 34: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/34.jpg)
KAEMaRT Michele ANTOLINI
Texture mapping – Sphere mapping
http://www.siggraph.org/education/materials/HyperGraph/hypergraph.htm
• Inscrizione della geometria all’interno di una sfera e proiezione della texture
![Page 35: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/35.jpg)
KAEMaRT Michele ANTOLINI
Texture mapping – Cube mapping
http://www.siggraph.org/education/materials/HyperGraph/hypergraph.htm
• Il cube mapping necessita di 6 immagini, corrispondenti alle sei facce di un cubo che circonda la geometria
![Page 36: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/36.jpg)
KAEMaRT Michele ANTOLINI
Texture mapping – Cube mapping
http://www.siggraph.org/education/materials/HyperGraph/hypergraph.htm
• Insieme allo sphere mapping, il cube mapping è la tecnica più utilizzata per risolvere il problema dell’environment mapping ed è sfruttata massivamente nei giochi
![Page 37: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/37.jpg)
KAEMaRT Michele ANTOLINI
Bump mapping
• Il bump mapping permette di aumentare il livello di dettaglio di una scena senza aggiungere complessità alle geometrie
• La tecnica si basa sull’interpretazione di una texture (solitamente in scala di grigi) applicata ad un oggetto per generare sporgenze, solchi o rugosità.
• La corrispondenza tra il livello di grigio e l’entità del solco o della sporgenza è de!nito dall’utente al momento dell’applicazione della texture.
![Page 38: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/38.jpg)
KAEMaRT Michele ANTOLINI
Bump mapping
• L’utilizzo del bump mapping permette di calcolare l’ombreggiatura di un oggetto ma non ne cambia la geometria
• Nell’immagine di esempio, infatti, la sagoma delle sfere non viene in#uenzata dalla presenza di solchi
![Page 39: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/39.jpg)
KAEMaRT Michele ANTOLINI
SHADING
![Page 40: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/40.jpg)
KAEMaRT Michele ANTOLINI
Shading
• Lo shading è l'operazione che permette, dato il colore di una super!cie o di una faccia di un poligono, di calcolarne l'ombreggiatura in base alla direzione della luce (partendo dalla posizione della sorgente luminosa).
• Flat shading: assegnazione di una tonalità di colore per ogni faccia dei poligoni contenuti nella scena
• Smooth shading: per ogni pixel dell'immagine rasterizzata, la tonalità di colore dipende dall'interpolazione dei vettori normali alle facce del poligono. I diversi algoritmi di smooth shading si differenziano in base al metodo di interpolazione dei vettori normali.
![Page 41: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/41.jpg)
KAEMaRT Michele ANTOLINI
Shading
FLAT SHADING SMOOTH SHADING (Gouraud e Phong)
![Page 42: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/42.jpg)
KAEMaRT Michele ANTOLINI
Shading
• Oltre agli algoritmi di shading prede!niti, è possibile programmare algoritmi personalizzati da far eseguire direttamente dalla scheda gra!ca
• Questa funzionalità rende possibile la de!nizione di materiali complessi al !ne di ottenere effetti fotorealistici
• Il massimo grado di fotorealismo è raggiunto da algoritmi di raytracing, che simulano il comportamento dei fotoni emessi da una sorgente luminosa
![Page 43: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/43.jpg)
KAEMaRT Michele ANTOLINI
Realistic rendering
http://www.realtime-technology.com
![Page 44: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/44.jpg)
KAEMaRT Michele ANTOLINI
Realistic rendering
http://www.nvidia.com
![Page 45: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/45.jpg)
KAEMaRT Michele ANTOLINI
Computer Gra!ca
• I programmi di gra!ca (non solo 3D) hanno una struttura molto simile
• Fasi: • De!nizione geometrie (vertici, vettori, linee, poligoni,
curve, super!ci, volumi) • De!nizione punto di vista, FOV, proiezione • Tassellazione, shading (+ eventuali texture)
• Sono coinvolti vettori, matrici, equazioni matematiche
![Page 46: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/46.jpg)
KAEMaRT Michele ANTOLINI
FASI STORICHE
![Page 47: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/47.jpg)
KAEMaRT Michele ANTOLINI
Software -> Hardware
• Anni ‘80: Presenza di algoritmi maturi per le operazioni 3D (la tesi di Sutherland è del 1963)
• Necessità di applicare ad un grande numero di dati le medesime operazioni
• 1984: la IBM rilascia il primo tentativo di scheda per PC dedicata all'accelerazione hardware 2D/3D (con un processore 8088-2, 8MHz)
• Negli anni '90 l'accelerazione 2D prima e 3D poi diventano sempre più importanti per le prestazioni dei computer, così società come S3, ATI, Matrox cominciano a produrre schede di accelerazione hardware sempre più performanti
![Page 48: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/48.jpg)
KAEMaRT Michele ANTOLINI
OpenGL
• 1992: la Silicon Graphics sviluppa una speci!ca per disegnare scene tridimensionali a partire da chiamate a funzioni primitive
• Si tratta della prima de!nizione di Open Graphics Library (OpenGL)
• De!nita come interfaccia: i costruttori implementano le funzioni in base allo speci!co hardware sottostante
• 2007: il controllo dell’interfaccia OpenGL passa al consorzio Khronos Group
![Page 49: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/49.jpg)
KAEMaRT Michele ANTOLINI
OpenGL
• È una speci!ca, un insieme di API (de!nizione dei punti di ingresso per la programmazione)
• Non è legata ad hardware speci!co, le funzionalità sono modellate in maniera astratta
• È uno standard aperto e ne esistono implementazioni per diversi sistemi operativi (anche di tipo mobile (iPhone, Android, Symbian)
![Page 50: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/50.jpg)
KAEMaRT Michele ANTOLINI
OpenGL
• Implementazioni software di funzioni non supportate dall’hardware
• Sfruttamento delle capacità dei diversi acceleratori 3D
• L’interfaccia si è evoluta nel tempo, ma la !loso!a iniziale non è mai cambiata (es. principio della macchina a stati, astrazione dalle funzionalità hardware)
![Page 51: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/51.jpg)
KAEMaRT Michele ANTOLINI
OpenGL - Date
• 1992: OpenGL 1.0 • 1997 (gennaio): OpenGL 1.1, texture su GPU • 1998-2003 OpenGL viene aggiornato più o meno
annualmente • 2004: OpenGL 2.0, shaders programmabili (GLSL, OpenGL
Shading Language) • 2008: OpenGL 3.0, geometry shader, vertex array (tra le
altre cose) • 2010 (11 marzo) OpenGL 4.0:
• tassellazione • virgola mobile a 64bit (doppia precisione) per gli shader • supporto OpenCL (GPGPU) per lo sfruttamento della GPU per General
Purpose computing
![Page 52: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/52.jpg)
KAEMaRT Michele ANTOLINI
OpenGL
• L’interfaccia OpenGL ha portato nel tempo ad una convergenza nell’architettura hardware delle schede gra!che
• Nelle schede gra!che attuali, sezioni speci!che si occupano della gestione di:
• punti, linee, poligoni (primitive base)
• Generazione e tassellazione di curve e super!ci parametriche
• pipeline per trasformazioni e illuminazione
• Z-buffering
• Texture mapping
• Alpha blending
![Page 53: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/53.jpg)
KAEMaRT Michele ANTOLINI
OpenGL
• OpenGL non si occupa di: • event management • input management (tastiera/mouse) • window management
• L’ambiente di sviluppo per OpenGL è normalmente costituito da alcune librerie: • gl OpenGL • glu GL Utilities • gl<ws> Estensione per <ws> (window system) • glut Interfaccia a <ws>
![Page 54: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/54.jpg)
KAEMaRT Michele ANTOLINI
OpenGL
• rendering 3D • lighting • z-buffering • alpha blending • applicazione texture • antialiasing • fog
Libreria gl
![Page 55: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/55.jpg)
KAEMaRT Michele ANTOLINI
OpenGL
• gestione parametri viewing • gestione texture mapping • polygon tessellation (decompositore generico
di poligoni concavi) • curve e super!ci parametriche • gestione errori
Libreria glu
![Page 56: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/56.jpg)
KAEMaRT Michele ANTOLINI
OpenGL
• interfaccia con il window system • gestione eventi • gestione input keyboard/mouse • primitive 3D • realizza trasparenza rispetto al window
system sottostante
Libreria glut
![Page 57: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/57.jpg)
KAEMaRT Michele ANTOLINI
Direct3D
• Parte delle DirectX (interfaccia per la gestione della multimedialità e delle periferiche di gioco per MS Windows)
• Interfaccia proprietaria, sviluppata da Microsoft e implementata solo per sistemi Microsoft
• Estremamente legata all’hardware e alle funzionalità fornite dalle schede gra!che
• Per ogni versione, la backward compatibility è difficilmente garantita
• Dalla versione 9 in poi le prestazioni sono molto elevate e l’architettura è diventata matura
• Maggiore sfruttamento dell’hardware sottostante a discapito della compatibilità
![Page 58: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/58.jpg)
KAEMaRT Michele ANTOLINI
GPU
• Le schede gra!che (GPU) non sono più “semplici” rasterizer ma gestiscono luci, texture e shading
• Negli anni 2000 i produttori di GPU forniscono gli strumenti per programmare direttamente sull’hardware gli algoritmi di shading
• Ogni vertice della geometria ed ogni pixel rasterizzato vengono processati da un programma residente sulla GPU che può includere texture aggiuntive o altri tipi di input
![Page 59: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/59.jpg)
KAEMaRT Michele ANTOLINI
Shaders
• I primi shaders erano de!niti direttamente nell’hardware della scheda video (!at e smooth shaders)
• Prima di OpenGL 2.0, alcune schede gra!che erano programmabili in linguaggio assembler, il cui codice binario doveva essere copiato sulla scheda
• Con OpenGL 2.0 è stato de!nito un linguaggio di programmazione per shaders, il GLSL (OpenGL Shading Language)
![Page 60: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/60.jpg)
KAEMaRT Michele ANTOLINI
Shaders
• Le schede gra!che diventano una logica programmabile
• Il consorzio OpenGL ARB (Architecture Review Board) detta le speci!che per il linguaggio di alto livello (simile al C) con cui programmare le schede
• Il compilatore è integrato nei driver OpenGL (se compatibile 2.0) di ogni scheda, quindi ottimizzato a seconda dell’hardware sottostante
![Page 61: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/61.jpg)
KAEMaRT Michele ANTOLINI
Shaders
• Gli shaders seguono il paradigma di programmazione de!nito stream processing
• La GPU permette centinaia, migliaia di operazioni contemporanee su dati multipli: Single Instruction Multiple Data (SIMD)
• Uno shader è un vero e proprio programma che sfrutta le capacità di calcolo parallelo della GPU
![Page 62: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/62.jpg)
KAEMaRT Michele ANTOLINI
GLSL
• Il consorzio OpenGL ARB ha de!nito un linguaggio standard di alto livello per la programmazione di shaders
• Sono stati tenuti in considerazione molti requisiti: • Buona integrazione con speci!che OpenGL • Possibilità di sfruttamento di hardware futuro • Indipendenza dall’hardware sottostante • Semplicità e longevità • Compatibilità con calcolo parallelo massivo
![Page 63: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/63.jpg)
KAEMaRT Michele ANTOLINI
GLSL
• Gli shaders si dividono in vertex shaders e fragment shaders
• Sono solitamente associati tra di loro • Il vertex shader è l’algoritmo che viene richiamato per
ogni vertice risultante dalla tassellazione e gestisce le caratteristiche del modello
• Il fragment shader (o pixel shader) viene richiamato per ogni pixel dell’immagine e gestisce texture e bump mapping
![Page 64: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/64.jpg)
KAEMaRT Michele ANTOLINI
GLSL - Esempi
![Page 65: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/65.jpg)
KAEMaRT Michele ANTOLINI
GLSL - Esempi
Toon Shader
![Page 66: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/66.jpg)
KAEMaRT Michele ANTOLINI
GLSL - Esempi
Shader Animati (i calcoli vengono eseguiti dalla GPU)
![Page 67: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/67.jpg)
KAEMaRT Michele ANTOLINI
GLSL - Esempi
Shader Animati (i calcoli vengono eseguiti dalla GPU)
![Page 68: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/68.jpg)
KAEMaRT Michele ANTOLINI
GLSL - Esempi
Effetti particellari (le traiettorie delle particelle sono calcolati in parallelo dalla GPU)
![Page 69: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/69.jpg)
KAEMaRT Michele ANTOLINI
GPGPU
• Le schede gra!che odierne non si occupano più solo di gra!ca
• La programmabilità e la capacità di eseguire calcoli complessi da applicare ad un gran numero di dati in contemporanea (alto parallelismo a livello hardware) fa preferire l’esecuzione di alcuni algoritmi su GPU piuttosto che su CPU
• Questa tecnica si de!nisce General Purpose (Computing) on GPU (GPGPU)
• Esistono numerose applicazioni in grado di sfruttare la GPU, non solo di tipo scienti!co, ma anche programmi di gra!ca come Photoshop parti del sistema operativo Mac OSX Snow Leopard
• Esistono anche diverse implementazioni di encoder/decoder audio/video che, sfruttando la GPU, riescono ad incrementare le prestazioni anche di 20 volte rispetto alle implementazioni per CPU
![Page 70: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/70.jpg)
KAEMaRT Michele ANTOLINI
Librerie per GPGPU
Le principali librerie che permettono l’esecuzione di codice su GPU sono:
• OpenCL (standard utilizzato dal sistema operativo Snow Leopard )
• CUDA (sviluppato per le schede Nvidia)
• Stream (sviluppato per le schede Ati)
![Page 71: Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI Proiezione ortogonale parallela • La proiezione ortogonale di una scena racchiusa](https://reader035.fdocuments.in/reader035/viewer/2022081516/5f33eb25d765b64c955d50df/html5/thumbnails/71.jpg)
KAEMaRT Michele ANTOLINI
LET’S START Un po’ di teoria adesso!