Introduzione alla Computer Graphics

annuncio pubblicitario
Introduzione alla
Computer Graphics
Informatica Grafica
CdLS a ciclo unico in Ingegneria Edile-Architettura
a.a. 2008/09
Computer Graphics e Image Processing
z
Image processing
–
Insieme di teorie ed algoritmi per la elaborazione di
immagini (raster)
z
z
z
z
z
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
z
z
z
z
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
z
Ambito ludico
–
z
Cinema ed intrattenimento
–
z
z
z
z
z
Videogiochi, giochi per computer
Un numero consistente di film, pubblicita’,
video, etc. adotta tecniche di CG
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
z
Non Real Time
–
Non ha importanza quanto tempo e’ richiesto per il
rendering di un’immagine (e.g., CAD, computer art)
z
z
z
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’
z
z
algoritmi semplici
Hardware specializzato (GPU)
7
Rendering
z
z
z
z
z
Modellazione di oggetti tridimensionali
Trasformazioni geometriche
Illuminazione e shading
Texture mapping
Rasterizzazione
8
Modellazione di solidi - geometria
z
Geometria
–
“Triangle mesh”: superfici di solidi rappresentate come
insieme di triangoli con vertici a comune
9
Modellazione di solidi – geometria (2)
z
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
z
Texture Mapping
–
–
Adattamento di un’immagine raster su una
triangle mesh
Conferisce realismo all’oggetto rappresentato
11
Trasformazioni geometriche
z
In coordinate omogenee
–
–
z
z
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
z
z
Vettori n+1 dimensionali (3 dim. per R2, 4 per R3)
Trasformazioni affini, lineari e proiettive come
moltiplicazioni di matrici
–
z
Es: traslazione in R2
GPU ottimizzate per eseguire moltiplicazioni matriciali
(~milioni di vertici/s)
13
Esempio
Rappresentazione
C. Cartesiane (2D)
⎡x ⎤
V =⎢ V⎥
⎣ yV ⎦
Vertice
1. rotazione di angolo θ
2. traslazione di Δ x , Δ y
3. scalatura di s x , s y
trasformazione finale
MR
⎡ cos θ
=⎢
⎣ sin θ
− sin θ ⎤
cos θ ⎥⎦
⎡Δ x ⎤
Δ=⎢ ⎥
⎣Δ y ⎦
⎡ sx
MS = ⎢
⎣0
0⎤
s y ⎥⎦
V ' = M S ⋅ (M R ⋅V + Δ )
C. Omogenee
⎡ xV ⎤
V = ⎢⎢ yV ⎥⎥
⎢⎣ 1 ⎥⎦
⎡ cos θ
M R = ⎢⎢ sin θ
⎢⎣ 0
⎡1
M Δ = ⎢⎢ 0
⎢⎣ 0
⎡ sx
M S = ⎢⎢ 0
⎢⎣ 0
− sin θ
cos θ
0
0⎤
0 ⎥⎥
1 ⎥⎦
Δx ⎤
1 Δ y ⎥⎥
0 1 ⎥⎦
0 0⎤
s y 0 ⎥⎥
0 1 ⎥⎦
0
V ' = (M S ⋅ M Δ ⋅ M R ) ⋅V = M ⋅V
14
Rimozione delle superfici nascoste
z
Calcolo del p. scalare tra la normale alla superficie
(piana) e l’angolo di visuale
–
z
se positivo, superficie non visibile
Ordinamento su z tra superfici visibili
–
Algoritmi complessi
15
Clipping dei poligoni
z
La rimozione di superfici, l’ordinamento in profondita’
ed i contorni dell’aera di visualizzazione creano
nuovi vertici (nuovi triangoli)
16
Sottosistema raster
z
Calcolo del colore dei punti
–
z
z
Modelli di illuminazione
Applicazione delle texture sulle superfici visibili
Formazione del raster nel frame buffer della
memoria video
17
Equazione della luce
z
Equazione di illuminazione
JG
w
JJG
w'
Ω
G
n
dw'
θ
x
18
Bidirectional Reflectance Distribution
Function
z
z
JJG JG
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
z
Riflessione
–
–
–
z
Materiali opachi
Diffusiva (sup. “scabra”)
Speculare (sup. “liscia”)
Rifrazione
–
Materiali trasparenti
20
Riflessione speculare e angolo di visuale
G
n
JJG
Lλ
θ
α
JJG
Rλ
JG
V
θ
ks
JG JJG
I r = I λ ⋅ k s ⋅ V ⋅ Rλ
(
)
α
α: esponente >1
1.2
alpha=1
alpha=2
alpha=10
alpha=100
1
ks: coefficiente di riflessione speculare
0.8
0.6
(caratteristiche del materiale)
0.4
0.2
0
0
0.5
1
1.5
2
21
-0.2
Riflessione diffusiva
z
Legge di Lambert
–
z
–
JJG
Lλ
La luce riflessa e’
z
G
n
identica in ogni direzione
Dipende dall’angolo di incidenza
θ
JJG
Rλ
θ
JG
V
Non dipende dall’angolo di visuale
JJG G
I r = I λ ⋅ kd ⋅ Lλ ⋅ n
(
)
22
Modelli di illuminazione
z
Globale (CG Non Real Time)
–
Tengono conto di (alcune tra)
z
z
z
z
–
z
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
z
z
z
Luci puntiformi, e nessuna riflessione 2o ordine
Riflessione speculare e diffusiva (no rifrazione)
G
Nessuna ombra portata
n
JJG
Lλ
θ
JJG
Rλ
JG
V
θ
JJG G
JG JJG α ⎤
⎡
I = I tot ⋅ ka + ∑ I λ ⋅ kd ⋅ Lλ ⋅ n + k s ⋅ V ⋅ Rλ
⎢⎣
⎥⎦
λ∈lights
(
)
(
)
24
Dove calcolare l’equazione di illuminazione
z
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
z
z
Triangolo -> superficie
piana
1 sola normale
z
Vertici condivisi tra triangoli
nAB
nA
nB
V1
nB
nA
TB
TA
V2
z
z
Calcolo il colore nei vertici
Interpolo il colore nei punti
interni
z
V3
Pseudo-normale sul vertice
calcolata interpolando le
normali a tutti i triangoli che
contengono il vertice
26
Gouraud Shading (2)
z
z
z
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
z
z
z
z
z
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
V1
TA
V2
V3
Piu’ conti, miglior resa grafica
28
Applicazione di texture
z
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
z
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
z
Algoritmo di Bresenham
z
Annerire un solo pixel
–
–
z
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
z
Si divide la circonferenza in ottanti, e si fa il conto
esatto per un solo ottante, replicando il resto per
simmetria
32
Aliasing
z
Effetto di scalettatura dovuto al contrasto
bianco/nero di pixel adiacenti
33
Verso il rendering fotorealistico
z
Modelli di illuminazione globale
–
–
–
Ray tracing
Photon mapping
Radiosity
34
Ray Tracing
z
Tiene conto di
–
–
–
Riflessione speculare e (in qualche modo) diffusiva
Rifrazione (trasparenza)
Ombre portate
35
Ray Tracing (2)
z
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)
z
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)
z
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
z
Internet Ray Tracing Competition, www.irtc.org
39
Alcuni esempi (2)
z
http://www.q4rt.de/
40
Limiti del ray tracing
z
z
z
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
z
“sparare” fotoni nella scena, e calcolare come si
distribuiscono dopo un certo numero di
riflessioni/rifrazioni etc.
z
Mappa di fotoni come contributo aggiuntivo, ad
esempio, al ray tracing
–
–
Riflessione diffusiva
Caustiche
42
Photon Mapping (2)
z
Esempio di formazione di caustica con photon
mapping + ray-tracing
0
1000
2000
6000
fotoni
43
Rendering non fotorealistico
z
Applicazioni:
–
–
–
Disegno tecnico
Entertainment (cartoni animati)
Tecniche artistiche varie
44
Chi fa cosa nel rendering Real Time
z
Applicazione (e.g., gioco interattivo)
–
–
z
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
z
–
modelli di illuminazione locali
Crea il raster
(…in un 15mo di secondo o meno)
45
Da Doom a AutoCAD
z
Fino agli anni ’90
–
–
z
Scheda video: ~ frame buffer + adattatore grafico
Software grafico: macchine specializzate (Silicon
Graphics), dal costo molto elevato
1993: Doom (~15M copie)
–
–
Giochi che richiedono abilita’ di rendering cominciano ad
avere grande diffusione
Si apre un largo mercato per l’hardware grafico
z
z
z
I costi si abbattono
Schede video: ~ frame buffer + adattatore grafico + 3d
acceleration GPU
Le applicazioni grafiche diventano possibili su home PC
46
Scarica