• Non ci sono risultati.

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

N/A
N/A
Protected

Academic year: 2021

Condividi "1view Coordinates(a.k.a. eye Coordinates)"

Copied!
10
0
0

Testo completo

(1)

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 4 / 1 5 ‧ 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 è verso destra (rispetto alla macchina fotogr) -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 4 / 1 5 ‧ 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)

(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 4 / 1 5 ‧ 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 4 / 1 5 ‧ 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

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

z

y

x v

0

v

1

v

2 object Coordinates

0

0) transformazione di modellazione

(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 4 / 1 5 ‧ 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;

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 4 / 1 5 ‧ 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

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

“Clip”

coordinates 1

1 -1

-1 x

z

y

x v

0

v

1

v

2 object Coordinates

0

0) transformazione di modellazione

(4)

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Transform

x

y

z v

0

v

1

v

2

world Coordinates

T v matrice di modellazione T m matrice di vista

T p matrice di proiezione T vp matrice di viewport

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

T vp

“Clip”

Coordinates 1

1 -1

-1 x

x

y

z v

0

v

1

v

2 object Coordinates

T v

T m T p

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

“Model-View matrix”

T mv matrice di modellazione-vista

= T v *T m

T p matrice di proiezione T vp matrice di viewport

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

T vp

“Clip”

Coordinates 1

1 -1

-1 x

x

y

z v

0

v

1

v

2 object Coordinates

T p

T mv

(5)

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

“Model-View-Projection matrix”

T mvp matrice di

modellazione-vista-proiezione

= T p * T v *T m T vp matrice di viewport

y x -z v

0

v

1

v

2

v

0

v

2

v

1

v

0

v

1

v

2

screen Space

T vp

“CLIP”

Coordinates 1

1 -1

-1 x

x

y

z v

0

v

1

v

2 object Coordinates

T p T mvp

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Next: trasformazione di vista

x

y

z v

0

v

1

v

2

world Coordinates

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

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

“CLIP”

Coordinates 1

1 -1

-1 x

x

y

z v

0

v

1

v

2 object Coordinates

0) transformazione di modellazione

2 0

1

(6)

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Input:

1) camera position: p pov 2) target position: p target 3) vettore di alto: v up

Esempio tipico di

costruzione transformazione di vista

y

z 0 x

sistema di riferimento globale (world frame)

v up

nb: punti e vettori espressi in spazio mondo!

p target

p pov

un esempio di descrizione completa dei parametri estrinseci della camera

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Input:

1) camera position: p pov 2) target position: p target 3) vettore di alto: v up

Esempio tipico di

costruzione transformazione di vista

sistema di riferimento della camera

(eye frame)

y e x e

-z e o e y

z 0 x

sistema di riferimento globale (world frame)

Output:

Matrice di Trasformazione world frame → eye frame

v up

(7)

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Input:

1) camera position: p pov 2) target position: p target 3) vettore di alto: v up

Esempio tipico di

costruzione transformazione di vista

y e x e

-z e o e y

z 0 x

v up

vec3 oe;

vec3 xe, ye, ze;

ze = p_target - p_pov;

ze = -ze;

ze = normlize( ze );

xe = cross( vup , ze );

xe = normalize( xe );

ye = cross(ze, xa);

y e x e z e o e

0 0 0 1

matrice che va da spazio vista a spazio mondo.

E’ l’inversa di quella che voelevo!

Ergo, va invertita!

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Esempio tipico di

costruzione transformazione di vista

vec3 oe;

vec3 xe, ye, ze;

ze = p_target - p_pov;

ze = -ze;

ze = normlize( ze );

xe = cross( vup , ze );

xe = normalize( xe );

ye = cross(ze, xa);

y e x e z e o e

0 0 0 1

matrice che va da spazio vista a spazio mondo.

E’ l’inversa di quella che voelevo!

Ergo, va invertita!

Origine e assi del sistema vista espressi nelle coord del sistema mondo

Inverto z_e, per come e’

definito lo spazio vista (z verso osservatore)

“completamento di base”

nb: quando si fallisce? le due normalizz possono essere div by 0?

quando?

normalizzaz non necessaria (perché?)

(8)

Esempio tipico di

costruzione transformazione di vista

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

mat4 view_matrix( vec3 p_target, vec3 p_pov, vec3 v_up ) {

vec3 xe, ye, ze; // gli assi del sist. di rif. vista ze = p_target - p_pov;

ze = -ze;

ze = normlize( ze );

xe = cross( vup, ze );

xe = normalize( xe );

ye = cross( ze, xa );

mat4 m; // l’inversa della mat di vista

m[0] = vec4( xe, 0 ); // setta la 1ma colonna di m m[1] = vec4( ye, 0 );

m[2] = vec4( ze, 0 );

m[3] = vec4( p_pov, 1 );

return invese(m); // inversione generica? (spreco!) }

Inversione di una rotazione (ripetiamoci)

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

R 0

00 11

rotazione 4x4 generica

(asse passante per origine)

R = v 0 v 1 v 2

R rotazione 3x3,

cioè ortonormale a det 1, cioè v

0

v

1

v

2

:

- unit sized

- ortogonali a due a due

-1

dove:

= R 0

00 11

T

(9)

Inversione di una rotazione (ripetiamoci)

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

R v v v v v 0 0 1 1

v 2 2 =

proof (traccia):

* R =

T * v 0 v 1 v 2 I

R 0

00 11

rotazione 4x4 generica

(asse passante per origine)

-1

= R 0

00 11

T

Inversione di una traslazione (ripetiamoci)

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

I t

00 11

I

00 11

matrice 4x4 di traslazione

-1

= -t

(10)

Rototraslazione (isometria)

(tutte e sole le trasformazioni rigide)

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

R t

00 11

= I t

00 11

R 0

00 11

*

roto-traslazione (4x4)

( o isometria ) traslazione rotazione

(asse passante per origine)

Inversione di

una roto-traslazione

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

R t

00 11

= I t

00 11

*

-1 ( -1 =

= =

nb: (A B)

-1

= B

-1

A

-1

R 0

00 11 )

I -t

00 11

R 0

00 11

* R

00 11

T

R T * -t

T

Riferimenti

Documenti correlati

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

[r]

The independent pathway could be induced by elicitors present in insect oral secretions or by plant elicitors, like OGAs, but it could be also mediated by the recently

Furthermore, in Maeda [ 15 ] an equivalence is observed between being able to see quasi–periodic solutions, absence of resonant terms in the equations and, finally, existence

AGENDA 9:30-9:40 Welcome – introduction of participants Francesca La Torre, UNIFI 9:40-9:50 Overview of the IRDES project Francesca La Torre, UNIFI 9:50-10:05 State of the art

OBJECTIVE DATA: The purpose of this study was to perform a systematic review and metaanalysis of randomized controlled trials on oral progesterone compared with placebo or

The core of the problem is filtering the noisy trajectory data for each vehicle without altering platoon data consistency; i.e., the speeds and accelerations of following vehicles

Abstract: We have identified a variety of proteins in species of the Legionella, Aeromonas, Pseudomonas, Vibrio, Nitrosomonas, Nitrosospira, Variovorax, Halomonas, and Rhizobia