Introduzione alla Computer Graphics -...
Transcript of Introduzione alla Computer Graphics -...
Introduzione allaComputer Graphics
Informatica GraficaCdLS a ciclo unico in Ingegneria Edile-Architettura
a.a. 2008/09
2
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 regioniCorrezione di colore…
Computer Graphics– Insieme di teorie ed algoritmi per la visualizzazione
(rendering) di solidi su uno schermo bidimensionaleTrasformazioni geometriche di figure piane o di solidiCalcolo dell’illuminazione e delle ombreSimulazione delle caratteristiche ottiche delle superfici (riflessione, rifrazione, trasparenza, opacita’)…
3
Applicazioni della CG
Ambito ludico– Videogiochi, giochi per computer
Cinema ed intrattenimento– Un numero consistente di film, pubblicita’,
video, etc. adotta tecniche di CG
CAD
Visualizzazione scientifica
Medical Imaging
Simulazione e realta’ virtuale
Geographical Information Systems
4
Esempio 1 (computer art)
5
Esempio 2 (Medical imaging, GIS)
6
Esempio 3 (computer games)
7
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)
8
Rendering
Modellazione di oggetti tridimensionali
Trasformazioni geometriche
Illuminazione e shading
Texture mapping
Rasterizzazione
9
Modellazione di solidi - geometria
Geometria– “Triangle mesh”: superfici di solidi rappresentate come
insieme di triangoli con vertici a comune
10
Modellazione di solidi – geometria (2)
Come rappresentare la triangle mesh
( )( ){ } ( )( ){ }
3
,
| , , , , ,
| , , ,
i i i i i i i i
j j l m n m
Mesh V T
V v v x y z x y z
T t t v v v v V
=
= = ∈
= = ∈
11
Descrizione di un solido - aspetto
Texture Mapping– Adattamento di un’immagine raster su una
triangle mesh
– Conferisce realismo all’oggetto rappresentato
12
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
13
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)
14
EsempioRappresentazione C. Cartesiane (2D) C. Omogenee
Vertice V
V
xV
y
⎡ ⎤= ⎢ ⎥⎣ ⎦
1
V
V
x
V y
⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦
1. rotazione di angolo θcos sin
sin cosRMθ θθ θ
−⎡ ⎤= ⎢ ⎥⎣ ⎦
cos sin 0
sin cos 0
0 0 1RM
θ θθ θ
−⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦
2. traslazione di ,x yΔ Δ x
y
Δ⎡ ⎤Δ = ⎢ ⎥Δ⎣ ⎦
1 0
0 1
0 0 1
x
yM Δ
Δ⎡ ⎤⎢ ⎥= Δ⎢ ⎥⎢ ⎥⎣ ⎦
3. scalatura di ,x ys s 0
0x
Sy
sM
s
⎡ ⎤= ⎢ ⎥⎣ ⎦
0 0
0 0
0 0 1
x
S y
s
M s
⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦
trasformazione finale ( )'S RV M M V= ⋅ ⋅ + Δ ( )'
S RV M M M V M VΔ= ⋅ ⋅ ⋅ = ⋅
15
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
16
Clipping dei poligoni
La rimozione di superfici, l’ordinamento in profondita’ed i contorni dell’aera di visualizzazione creanonuovi vertici (nuovi triangoli)
17
Sottosistema raster
Calcolo del colore dei punti– Modelli di illuminazione
Applicazione delle texture sulle superfici visibili
Formazione del raster nel frame buffer dellamemoria video
18
Equazione della luce
Equazione di illuminazione
x
n
w
'w'dwΩ
θ
19
Bidirectional Reflectance DistributionFunction
BRDF,
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
( ), ',rf x w w
20
Fenomeni ottici rilevanti per il calcolodell’illuminazione
Riflessione– Materiali opachi
– Diffusiva (sup. “scabra”)
– Speculare (sup. “liscia”)
Rifrazione– Materiali trasparenti
21
Riflessione speculare e angolo di visuale
Lλ
n Rλ
Vθ θ
( )r sI I k V Rα
λ λ= ⋅ ⋅ ⋅
α
α: esponente >1
ks: coefficiente di riflessione speculare
(caratteristiche del materiale)
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
0 0.5 1 1.5 2
alpha=1
alpha=2
alpha=10
alpha=100
sk
22
Riflessione diffusiva
Legge di Lambert– La luce riflessa e’
identica in ogni direzione
Dipende dall’angolo di incidenza
– Non dipende dall’angolo di visuale
( )r dI I k L nλ λ= ⋅ ⋅ ⋅
Lλ
n Rλ
Vθ θ
23
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
24
Modello (locale) di Phong
Luci puntiformi, e nessuna riflessione 2o ordine
Riflessione speculare e diffusiva (no rifrazione)
Nessuna ombra portataLλ
n Rλ
Vθ θ
( ) ( )tot a d slights
I I k I k L n k V Rα
λ λ λλ∈
⎡ ⎤= ⋅ + ⋅ ⋅ ⋅ + ⋅ ⋅⎢ ⎥⎣ ⎦∑
25
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 manierainterpolata (Gouraud shading)
– In tutti i punti (Phong shading), piu’ adatto per superfici con riflessionelocalizzata
26
Gouraud Shading
Triangolo -> superficiepiana
1 sola normale
Calcolo il colore nei vertici
Interpolo il colore nei puntiinterni
Vertici condivisi tra triangoli
Pseudo-normale sul verticecalcolata interpolando le normali a tutti i triangoli checontengono il vertice
V1
V2 V3
nA
TA
TB
nB
nA nB
nAB
27
Gouraud Shading (2)
Calcolo esatto del coloresui vertici (applicando un modello di illuminazione), basandosi sulle pseudo-normali calcolate
colore nei punti interniottenuto interpolando i colori calcolati nei vertici
Problema: la riflessionespeculare concentratavicino ad un vertice viene“stirata” lungo il triangolo
V1
V2 V3
TA
TB
28
Phong Shading
Ho le pseudo-normali nei vertici(calcolate come visto prima)Interpolo le pseudo-normali neipunti interni al triangolo (tutti, o alcuni)Calcolo il colore (applicandol’equazione di Phong) per i puntidove ho una pseudo-normale(Eventualmente) interpolo ilcolore dove non ho pseudo-normali
Piu’ conti, miglior resa grafica
V1
V2 V3
TA
29
Applicazione di texture
Se il texture non assorbe interamente la luce, il colorecalcolato tramite il modello di illuminazione e l’algoritmo di shading si puo’ comporre con il colore del texture
( )' 1 tI I Iγ γ= − ⋅ + ⋅
0 1γ≤ ≤
30
Bump mapping
Alterazione delle normali alla superficie– Modifica la maniera in cui la luce viene riflessa
– Simula “rugosita’” del materiale
geometry Bump mapModifica le normali
+Bump mapped geometry
=
31
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
32
Rasterizzazione di circonferenze
Si divide la circonferenza in ottanti, e si fa il contoesatto per un solo ottante, replicando il resto per simmetria
33
Aliasing
Effetto di scalettatura dovuto al contrastobianco/nero di pixel adiacenti
34
Verso il rendering fotorealistico
Modelli di illuminazione globale– Ray tracing
– Photon mapping
– Radiosity
35
Ray Tracing
Tiene conto di – Riflessione speculare e (in qualche modo) diffusiva
– Rifrazione (trasparenza)
– Ombre portate
36
Ray Tracing (2)
Tracciare i singoli raggi luminosi– Dall’occhio alla sorgente luminosa (e non viceversa)
– Infatti, molti raggi emessi dalla sorgente non colpisconol’occhio (si sprecherebbe tempo)
37
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 deicontributi di ogni luce
– Si trovano le ombre portate
38
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
39
Alcuni esempi
Internet Ray Tracing Competition, www.irtc.org
40
Alcuni esempi (2)
http://www.q4rt.de/
41
Limiti del ray tracing
Resa non corretta dellariflessione diffusiva
In teoria, per calcolare ilcolore in A dovreiconsiderare anche il raggio2-C-A
Da A, invece che 2 raggiombra, dovrei tirare “infiniti”raggi ombra
C
42
Photon Mapping
“sparare” fotoni nella scena, e calcolare come sidistribuiscono dopo un certo numero di riflessioni/rifrazioni etc.
Mappa di fotoni come contributo aggiuntivo, ad esempio, al ray tracing– Riflessione diffusiva
– Caustiche
43
Photon Mapping (2)
Esempio di formazione di caustica con photon mapping + ray-tracing
0 1000 2000 6000
fotoni
44
Rendering non fotorealistico
Applicazioni:– Disegno tecnico
– Entertainment (cartoni animati)
– Tecniche artistiche varie
45
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)
46
Da Doom a AutoCAD
Fino agli anni ’90– 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 graficoI costi si abbattono
Schede video: ~ frame buffer + adattatore grafico + 3d acceleration GPU
Le applicazioni grafiche diventano possibili su home PC