• Non ci sono risultati.

Computer Graphics

N/A
N/A
Protected

Academic year: 2021

Condividi "Computer Graphics"

Copied!
3
0
0

Testo completo

(1)

1

Computer Graphics

Marco Tarini Università dell’Insubria

Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2012/13

Lezione 5:

Lezione 5:

Lezione 5:

Lezione 5: la T in T la T in T&L la T in T la T in T &L &L &L

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

fra m m en ti

(candidati pixels)

Riassunto puntate precedenti 3/3

Ve rti ci

(punti in R3)

pixel

finali

(nello screen-buffer)

Ve rti ci pr oi et ta ti

(punti in R2) Z

rasterizer triangoli

co m pu ta zi on i pe r f ra m m en to

z y

x

v

0

v

1

v

2

set- up

v

0

v

1

v

2

rasterizer segmenti set- up

rasterizer punti set- up

co m pu ta zi on i pe r v er tic e

noi siamo qui

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Transform

z y

x

v

0

v

1

v

2

v

0

v

1

v

2

world Coordinates screen Coordinates

• Per ogni vertice:

?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Transform

(Tizio) (Caio) visto da Tizio visto da Caio

• dipende dalla posiz della "camera” (macchina fotografica) – detta anche:

– pos del viewer – eye position – PoV (Point of View)

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Transform

z y

x

v

0

v

1

v

2

world Coordinates

• Strategia:

1) "transformazione di vista":

portare la scena davanti alla camera

• e non viceversa ;-)

1

y

x

-z v

0

v

1

v

2

view Coordinates (a.k.a. eye Coordinates)

Bene...

ora la geometria e' espressa in un sistema di coordianate in cui:

• lo zero è il centro di proiezione (l'obiettivo della camera)

• la camera guarda verso -z

• y è verso l'alto, e x e verso destra (rispetto al fotografo)

-necessario sapere i parametri estrinseci della

"virtual camera"

- posizione - orientamento

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

• :"trasformazione di vista":

portare la scena davanti alla camera

1) Trasformazione di vista

sistema di riferimento della camera (eye coords)

yyyy

eeee

xxxx

eeee

----zzzz

e e e e

O O O O

e e e e

yyyy

xxxx zzzz

0000 sistema di riferimento del mondo

(world coords) è un cambio di sistema di riferimento

(2)

2

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

1) Trasformazione di vista

• La posso ottenere con una serie di – traslazioni

– rotazioni

• La posso vedere come

un cambio di sistema di riferimento

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a 1

1 -1 -1

Transform

z y

x

v

0

v

1

v

2

world Coordinates

1

• Strategia:

1) "transformazione di vista":

portare la scena davanti alla camera 2) "transformazione di proiezione":

proietta la geometria sul piano di proiezione

y 2

-z v

0

v

1

v

2

view Coordinates (a.k.a. eye Coordinates)

y -x -z v

0

v

1

v

2

v

0

v

2

v

1

normalized projected coordinates

x

- necessario sapere i parametri intrinseci della "camera virtuale"

- in particolare, la lunghezza focale

- questa trasformazione è la resposnabile della distorsione prospettica - "le cose più lontane appaiono più piccole"

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Transform

z y

x

v

0

v

1

v

2

world Coordinates

1

• Strategia:

1) "transformazione di vista":

portare la scena davanti alla camera 2) "transformazione di proiezione":

proietta la geometria sul piano di proiezione 3) " transformazione di viewport":

da [-1,+1] 2 a [0..res x ]x[0..res y ] (pixels)

y 2

-z v

0

v

1

v

2

view Coordinates (a.k.a. eye Coordinates)

y -x -z v

0

v

1

v

2

v

0

v

2

v

1

v

0

v

1

v

2

screen Space

3

normalized projected coordinates 1

1 -1 -1

x

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

z Object Coordinates

• Dare ad ogni oggetto il suo sistema di coordiante privato:

il suo Object Coordinates Object Coordinates Object Coordinates Object Coordinates;

y

y y

y x

x x

x

z

z

z

z

y

x

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Object Coordinates

• Dare ad ogni oggetto il suo sistema di coordiante privato:

il suo Object Coordinates Object Coordinates Object Coordinates Object Coordinates;

• Durante il transform, prima di tutto

portare ogni oggetto nello sist di coordinate comuni:

da Object Coordinates Object Coordinates Object Coordinates Object Coordinates a World World World World Coordiantes Coordiantes Coordiantes Coordiantes

– consente di riutilizzare lo stesso modello più volte nella stessa scena – ogni istanza: stesse Object Coordinates dei vertici,

ma una trasformazione (di "modellazione") diversa per arrivare a World Coordinates diverse

– Es: ruote di una macchina (4 volte l'istanza di una ruota)

alberi, case, sedie in una stanza, pedoni su una scacchiera, etc, etc, etc

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Transform

z y

x

v

0

v

1

v

2

world Coordinates

1

1) transformazione di vista 2) transformazione di proiezione 3) transformazione di viewport

2

y -z v

0

v

1

v

2

view Coordinates (a.k.a. eye Coordinates)

y -x -z v

0

v

1

v

2

v

0

v

2

v

1

v

0

v

1

v

2

screen Space

3

normalized projected coordinates 1

1 -1 -1

x

z y

x v

0

v

1

v

2

object Coordinates

0

0) transformazione di modellazione

(3)

3

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

q = (p) v = (u) Trasformazioni geometriche (in generale)

• Funzioni che – prendono

un punto / un vettore – lo mappano in un altro

punto / vettore

Ora, un ripassino di geometria...

p

f f f

f

q

f

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Spazio vettoriale

• Due entità:

– scalari – vettori

• Operazioni

– somma e prodotto tra scalari (ovviamente)

– somma fra vettori

– prodotto vettore x scalare → vettore

(commutativo)

(lo spazio vettoriale è chiuso rispetto a:

somma vettoriale e al prodotto con scalari)

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Operazioni aggiuntive fra vettori

• Prodotto scalare (fra vettori)

– aka prodotto dot ( dot-product , o inner-product ) – vettore xxxx vettore → scalare

• Prodotto vettoriale (fra vettori) <=== solo in R 3 – aka prodotto cross ( cross-product, X-product ) – aka prodotto esterno

– vettore xxxx vettore → vettore

• Norma

– vettore → scalare

• Normalizzazione – vettore → vettore

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Ripasso: prodotto scalare e vettoriale

• Prodotto Scalare ("dot-product", "inner product") : vettore x vettore → scalare

) ( ) ( ) (

) (

v u v u v u

w v w u w v u

u v v u

=

=

⋅ +

=

⋅ +

=

α α α

commuta lineare 1/2 lineare 2/2 Proprietà

z z y y x x z y x z y

x α α β β β α β α β α β

α , , ) ⋅ ( , , ) = + + (

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Ripasso: prodotto scalare e vettoriale

• Prodotto Scalare ("dot-product", "inner product") : vettore x vettore → scalare

( ) ( )

) 0 , 0 , 0 (

0 ⇔ =

=

=

=

v v v

Q P Q P Q P

v v v

e anche:

quindi, per calcolare una distanza tra punti:

per la norma:

Proprietà

z z y y x x z y x z y

x α α β β β α β α β α β

α , , ) ⋅ ( , , ) = + + (

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Ripasso: prodotto scalare e vettoriale

• Prodotto Scalare ("dot-product", "inner product") : vettore x vettore → scalare

z z y y x x z y x z y

x α α β β β α β α β α β

α , , ) ⋅ ( , , ) = + + (

θ θ

cos 0

cos

=

=

=

v u

v u v u

v u v u

e ortogonali

Proprietà

e, se u e v sono normalizzati:

quindi se u e v non sono nulli:

molto utilmente:

Riferimenti

Documenti correlati

[r]

[r]

[r]

Flat shading Goraund shading Phong Shading (*) talvolta (ma impropriamente) detto: per-pixel lighting. quando si usano normali

[r]

di vista riflessa dalla norm.). Environment

[r]

[r]