Computer Graphics - Unibgcampo visivo lungo l’asse Y ( Field Of View Y) KAEMaRT Michele ANTOLINI...

71
Knowledge Aided Engineering Manufacturing and Related Technologies Computer Graphics Michele Antolini [email protected] 09/03/2012

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

KAEMaRT Michele ANTOLINI

LET’S START Un po’ di teoria adesso!