Introduzione alla Computer Graphics -...

23
Introduzione alla Computer Graphics Informatica Grafica CdLS a ciclo unico in Ingegneria Edile-Architettura a.a. 2008/09 2 Computer Graphics e Image Processing z Image processing Insieme di teorie ed algoritmi per la elaborazione di immagini (raster) z Modifiche di contrasto, luminosita’ z Individuazione di contorni di oggetti o regioni z Correzione di colore z z Computer Graphics Insieme di teorie ed algoritmi per la visualizzazione (rendering) di solidi su uno schermo bidimensionale z Trasformazioni geometriche di figure piane o di solidi z Calcolo dell’illuminazione e delle ombre z Simulazione delle caratteristiche ottiche delle superfici (riflessione, rifrazione, trasparenza, opacita’) z

Transcript of Introduzione alla Computer Graphics -...

Page 1: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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’)…

Page 2: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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)

Page 3: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

5

Esempio 2 (Medical imaging, GIS)

6

Esempio 3 (computer games)

Page 4: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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

Page 5: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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

=

= = ∈

= = ∈

Page 6: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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

Page 7: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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Δ= ⋅ ⋅ ⋅ = ⋅

Page 8: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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)

Page 9: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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Ω

θ

Page 10: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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

Page 11: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

21

Riflessione speculare e angolo di visuale

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λ λ= ⋅ ⋅ ⋅

n Rλ

Vθ θ

Page 12: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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α

λ λ λλ∈

⎡ ⎤= ⋅ + ⋅ ⋅ ⋅ + ⋅ ⋅⎢ ⎥⎣ ⎦∑

Page 13: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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

Page 14: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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

Page 15: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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

=

Page 16: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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

Page 17: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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

Page 18: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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)

Page 19: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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

Page 20: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

39

Alcuni esempi

Internet Ray Tracing Competition, www.irtc.org

40

Alcuni esempi (2)

http://www.q4rt.de/

Page 21: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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

Page 22: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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

Page 23: Introduzione alla Computer Graphics - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Introduzione... · Computer Graphics Informatica Grafica CdLS a ciclo unico in

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