Introduzione alla Computer Graphics
Informatica Grafica CdLS a ciclo unico in Ingegneria Edile-Architettura a.a. 2008/09
Computer Graphics e Image Processing
Image processing
–
Insieme di teorie ed algoritmi per la elaborazione di immagini (raster)
Modifiche di contrasto, luminosita’ Individuazione di contorni di oggetti o regioni Correzione di colore …
Computer Graphics
–
Insieme di teorie ed algoritmi per la visualizzazione (rendering) di solidi su uno schermo bidimensionale
Trasformazioni geometriche di figure piane o di solidi Calcolo dell’illuminazione e delle ombre Simulazione delle caratteristiche ottiche delle superfici (riflessione, rifrazione, trasparenza, opacita’) …
2
Applicazioni della CG
Ambito ludico
–
Videogiochi, giochi per computer Un numero consistente di film, pubblicita’, video, etc. adotta tecniche di CG
Cinema ed intrattenimento
–
CAD Visualizzazione scientifica Medical Imaging Simulazione e realta’ virtuale Geographical Information Systems
3
Esempio 1 (computer art)
4
Esempio 2 (Medical imaging, GIS)
5
Esempio 3 (computer games)
6
Il fattore tempo nella CG
Non Real Time
–
Non ha importanza quanto tempo e’ richiesto per il rendering di un’immagine (e.g., CAD, computer art)
algoritmi arbitrariamente complessi Non c’e’ necessita’ di hardware specializzato
Real Time
–
il rendering di un’immagine deve avvenire entro un tempo predefinito (e.g., giochi, applicazioni interattive), anche a costo di perdere in qualita’
algoritmi semplici Hardware specializzato (GPU)
7
Rendering
Modellazione di oggetti tridimensionali Trasformazioni geometriche Illuminazione e shading Texture mapping Rasterizzazione
8
Modellazione di solidi - geometria
Geometria
–
“Triangle mesh”: superfici di solidi rappresentate come insieme di triangoli con vertici a comune
9
Modellazione di solidi – geometria (2)
Come rappresentare la triangle mesh
Mesh = (V , T ) V = {vi | vi = ( xi , yi , zi )} ,
( xi , yi , zi ) ∈
3
T = {t j | t j = ( vl , vm , vn )} , vm ∈ V
10
Descrizione di un solido - aspetto
Texture Mapping
–
–
Adattamento di un’immagine raster su una triangle mesh Conferisce realismo all’oggetto rappresentato
11
Trasformazioni geometriche
In coordinate omogenee
– –
Dai singoli oggetti ad un unico spazio 3d (world space) Proiezione del world space sul piano di vista
Rimozione delle superfici nascoste Clipping dei poligoni
12
Coordinate omogenee
Vettori n+1 dimensionali (3 dim. per R2, 4 per R3) Trasformazioni affini, lineari e proiettive come moltiplicazioni di matrici
–
Es: traslazione in R2
GPU ottimizzate per eseguire moltiplicazioni matriciali (~milioni di vertici/s)
13
Esempio
Rappresentazione Vertice C. Cartesiane (2D)
⎡x ⎤ V =⎢ V⎥ ⎣ yV ⎦
⎡ cos θ =⎢ ⎣ sin θ − sin θ ⎤ cos θ ⎥ ⎦
C. Omogenee ⎡ xV ⎤ V = ⎢ yV ⎥ ⎢ ⎥ ⎢1 ⎥ ⎣ ⎦
⎡ cos θ M R = ⎢ sin θ ⎢ ⎢ 0 ⎣ ⎡1 M Δ = ⎢0 ⎢ ⎢0 ⎣ ⎡ sx MS = ⎢0 ⎢ ⎢0 ⎣ − sin θ cos θ 0 0⎤ 0⎥ ⎥ 1⎥ ⎦
1. rotazione di angolo θ
MR
2. traslazione di Δ x , Δ y
⎡Δ x ⎤ Δ=⎢ ⎥ ⎣Δ y ⎦
⎡ sx MS = ⎢ ⎣0
3. scalatura di s x , s y trasformazione finale
0⎤ sy ⎥ ⎦
V ' = M S ⋅ (M R ⋅V + Δ )
V ' = (M S ⋅ M Δ ⋅ M R ) ⋅V = M ⋅V
14
Δx ⎤ 1 Δy⎥ ⎥ 0 1 ⎥ ⎦ 0 0⎤ sy 0⎥ ⎥ 0 1⎥ ⎦ 0
Rimozione delle superfici nascoste
Calcolo del p. scalare tra la normale alla superficie (piana) e l’angolo di visuale
–
se positivo, superficie non visibile
Ordinamento su z tra superfici visibili
–
Algoritmi complessi
15
Clipping dei poligoni
La rimozione di superfici, l’ordinamento in profondita’ ed i contorni dell’aera di visualizzazione creano nuovi vertici (nuovi triangoli)
16
Sottosistema raster
Calcolo del colore dei punti
–
Modelli di illuminazione
Applicazione delle texture sulle superfici visibili Formazione del raster nel frame buffer della memoria video
17
Equazione della luce
Equazione di illuminazione
Ω
w'
dw'
w
n
θ
x
18
Bidirectional Reflectance Distribution Function
BRDF, f r x, w ', w Misura la quanita’ di luce riflessa in una data direzione
–
(
)
–
Funzione della direzione del raggio incidente e della direzione di vista Si misura con gonioreflettometri
19
Fenomeni ottici rilevanti per il calcolo dell’illuminazione
Riflessione
– – –
Materiali opachi Diffusiva (sup. “scabra”) Speculare (sup. “liscia”)
Rifrazione
–
Materiali trasparenti
20
Riflessione speculare e angolo di visuale
n
Lλ Rλ
α
V
θ
θ
ks
I r = I λ ⋅ k s ⋅ V ⋅ Rλ
(
)
α
α: esponente >1
ks: coefficiente di riflessione speculare (caratteristiche del materiale)
1.2
1
0.8
alpha=1 alpha=2 alpha=10 alpha=100
0.6
0.4
0.2
0 0 -0.2 0.5 1 1.5 2
21
Riflessione diffusiva
Legge di Lambert
–
La luce riflessa e’
identica in ogni direzione Dipende dall’angolo di incidenza
n
Lλ
Rλ
θ
θ
V
–
Non dipende dall’angolo di visuale
I r = I λ ⋅ kd ⋅ Lλ ⋅ n
(
)
22
Modelli di illuminazione
Globale (CG Non Real Time)
–
Tengono conto di (alcune tra)
Riflessioni (di ogni ordine) Ombre portate Rifrazione Trasparenza
–
Ray Tracing, Photon Mapping, Radiosity
Locale (CG Real Time)
–
–
Il calcolo viene semplificato in modo tale che possa essere compiuto in tempi sufficientemente brevi Modello di Phong
23
Modello (locale) di Phong
Luci puntiformi, e nessuna riflessione 2o ordine Riflessione speculare e diffusiva (no rifrazione) Nessuna ombra portata n
Lλ
Rλ
θ
θ
V
I = I tot ⋅ ka + ∑ I λ ⋅ ⎡ kd ⋅ Lλ ⋅ n + k s ⋅ V ⋅ Rλ ⎢ ⎣ λ∈lights
(
)
(
)
α
⎤ ⎥ ⎦
24
Dove calcolare l’equazione di illuminazione
Trade-off tra costo e resa
– –
–
Una volta per superficie (flat shading) In alcuni punti (e.g., nei vertici) in modo esatto e negli altri in maniera interpolata (Gouraud shading) In tutti i punti (Phong shading), piu’ adatto per superfici con riflessione localizzata
25
Gouraud Shading
Triangolo -> superficie piana 1 sola normale Vertici condivisi tra triangoli
nAB nA nB V1 nB nA TB
TA V2 V3
Calcolo il colore nei vertici Interpolo il colore nei punti interni
Pseudo-normale sul vertice calcolata interpolando le normali a tutti i triangoli che contengono il vertice
26
Gouraud Shading (2)
Calcolo esatto del colore sui vertici (applicando un modello di illuminazione), basandosi sulle pseudonormali calcolate colore nei punti interni ottenuto interpolando i colori calcolati nei vertici Problema: la riflessione speculare concentrata vicino ad un vertice viene “stirata” lungo il triangolo
V1 TB
TA V2 V3
27
Phong Shading
Ho le pseudo-normali nei vertici (calcolate come visto prima) Interpolo le pseudo-normali nei punti interni al triangolo (tutti, o alcuni) Calcolo il colore (applicando l’equazione di Phong) per i punti dove ho una pseudo-normale (Eventualmente) interpolo il colore dove non ho pseudonormali Piu’ conti, miglior resa grafica
V1
TA V2 V3
28
Applicazione di texture
Se il texture non assorbe interamente la luce, il colore calcolato tramite il modello di illuminazione e l’algoritmo di shading si puo’ comporre con il colore del texture
I ' = (1 − γ ) ⋅ I t + γ ⋅ I
0 ≤ γ ≤1
29
Bump mapping
Alterazione delle normali alla superficie
– –
Modifica la maniera in cui la luce viene riflessa Simula “rugosita’” del materiale
geometry
+
Bump map Modifica le normali
=
Bump mapped geometry
30
Rasterizzazione di poligoni
Algoritmo di Bresenham
Annerire un solo pixel
– –
Per ascissa (se la pendenza e’ < 45°) Per ordinata (se la pendenza e’ > 45°)
Quello dove si concentra la maggior parte della linea
31
Rasterizzazione di circonferenze
Si divide la circonferenza in ottanti, e si fa il conto esatto per un solo ottante, replicando il resto per simmetria
32
Aliasing
Effetto di scalettatura dovuto al contrasto bianco/nero di pixel adiacenti
33
Verso il rendering fotorealistico
Modelli di illuminazione globale
– – –
Ray tracing Photon mapping Radiosity
34
Ray Tracing
Tiene conto di
– – –
Riflessione speculare e (in qualche modo) diffusiva Rifrazione (trasparenza) Ombre portate
35
Ray Tracing (2)
Tracciare i singoli raggi luminosi
– –
Dall’occhio alla sorgente luminosa (e non viceversa) Infatti, molti raggi emessi dalla sorgente non colpiscono l’occhio (si sprecherebbe tempo)
36
Ray tracing (3)
raggio primario: dall’occhio al primo oggetto
–
–
–
Se la superficie ha riflessione diffusiva: tanti raggi ombra quante sono le luci Si calcola l’illuminazione del punto come somma dei contributi di ogni luce Si trovano le ombre portate
37
Ray tracing (4)
Se la superficie ha riflessione speculare - rifrazione
–
–
Si calcolano anche i raggi speculari / trasparenza secondo le leggi dell’ottica Per ciascuno di questi si calcolano i raggi ombra, e cosi’ via
38
Alcuni esempi
Internet Ray Tracing Competition, www.irtc.org
39
Alcuni esempi (2)
http://www.q4rt.de/
40
Limiti del ray tracing
Resa non corretta della riflessione diffusiva In teoria, per calcolare il colore in A dovrei considerare anche il raggio 2-C-A Da A, invece che 2 raggi ombra, dovrei tirare “infiniti” raggi ombra
C
41
Photon Mapping
“sparare” fotoni nella scena, e calcolare come si distribuiscono dopo un certo numero di riflessioni/rifrazioni etc.
Mappa di fotoni come contributo aggiuntivo, ad esempio, al ray tracing
– –
Riflessione diffusiva Caustiche
42
Photon Mapping (2)
Esempio di formazione di caustica con photon mapping + ray-tracing
0
1000 fotoni
2000
6000
43
Rendering non fotorealistico
Applicazioni:
– – –
Disegno tecnico Entertainment (cartoni animati) Tecniche artistiche varie
44
Chi fa cosa nel rendering Real Time
Applicazione (e.g., gioco interattivo)
– –
Stabilisce quali solidi debbano essere visualizzati Ne mette in memoria una descrizione (geometria e texture)
Scheda video (con acceleratore 3d)
– – – – – –
Costruisce la scena 3d inserendo tutti i solidi in un sistema di coordinate comune Crea la vista 2d proiettando la scena sul piano dello schermo Stabilisce quali facce dei solidi sono visibili e quali non lo sono Applica texture e bump map su ciascuna superficie Calcola il colore (lighting) di ogni punto delle facce visibili
modelli di illuminazione locali
Crea il raster
(…in un 15mo di secondo o meno)
45
Da Doom a AutoCAD
Fino agli anni ’90
– –
Scheda video: ~ frame buffer + adattatore grafico Software grafico: macchine specializzate (Silicon Graphics), dal costo molto elevato Giochi che richiedono abilita’ di rendering cominciano ad avere grande diffusione Si apre un largo mercato per l’hardware grafico
I costi si abbattono Schede video: ~ frame buffer + adattatore grafico + 3d acceleration GPU Le applicazioni grafiche diventano possibili su home PC
1993: Doom (~15M copie)
–
–
46