• Non ci sono risultati.

2view Coordinates(a.k.a. eye Coordinates)screen Space

N/A
N/A
Protected

Academic year: 2021

Condividi "2view Coordinates(a.k.a. eye Coordinates)screen Space"

Copied!
5
0
0

Testo completo

(1)

da XKCD

http://xkcd.com/184/

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

Cambio di frame

• In realtà tutte le transf. affini lineari si possono vedere come un cambio di frame

– comprese quelle viste:

• traslazione

• scaling (uniforme o no)

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

• scaling (uniforme o no)

• shearing

• rotazioni

Rotazioni generiche

• Una rotazione generica é definita da:

– angolo, – asse

– punto di applicazione

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

• come si fa?

• Input:

1) camera position C pos 2) direzione di vista C dir 3) vettore di alto C up

Esercizio: transformazione di vista

yyyy eeee xxxx

• Output:

Matrice di Trasformazione

world frame → eye frame

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

sistema di riferimento della camera (eye frame)

xxxx eeee

----zzzz e e e e O O O O e e e e yyyy

zzzz 0000 xxxx

sistema di riferimento globale (wolrd frame)

C up

Transform

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

v

0

v

1

v

2

x y

z v

0

v

1

v

2

object Coordinates

0) transformazione di modellazione

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

x y

z

v

0

v

1

v

2 world Coordinates

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

2

screen Space

3

Normalized Device Coordinates 1

1 -1 -1

x

object Coordinates

0 1

Esempio in 2D

• Procedura Disegna_pupazzo_di_neve – Disegna cerchio unitario // corpo – Trasla di (0,2)

– Disegna cerchio unitario // testa – (undo trasla)

– END

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

3

1 2 3 1

2

(2)

Esempio in 2D

• Procedura Disegna_pupazzo_di_neve – Disegna cerchio unitario // corpo – Trasla di (0,2)

– Disegna cerchio unitario // testa – (undo trasla)

– END

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

• Main

– Scala di (2,2)

– Disegna_pupazzo_di_neve:

• Disegna cerchio unitario

• Trasla di (0,2)

• Disegna cerchio unitario

• (undo trasla)

3

1 2 3 1

2

Scene composite

sist coord macchina

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

sist coord ruota

Rendering di scene composite

M matrice di modelling usata

(da settare prima del rendering di ogni pezzo)

T

M

matr traslazione macchina R

M

matr rotazione macchina

T

M

R

M

: va da frame macchina a frame mondo

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

T

M

R

M

: va da frame macchina a frame mondo

T

Ri

matr traslazione ruota i T

Ri

: va da frame ruota

a frame macchina! sist coord

mondo (globale) T

M

Come viene l'algoritmo di rendering?

Stack di matrici di modelling!

T R T

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

T M R M M

T M R M T R0

Transform

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

v

0

v

1

v

2

x y

z v

0

v

1

v

2

object Coordinates

0) transformazione di modellazione

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

x y

z

v

0

v

1

v

2 world Coordinates

1

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

2

screen Space

3

Normalized Device Coordinates 1

1 -1 -1

x

object Coordinates

0

2

Trasformazione di proiezione

• Prima o poi dovremo farlo: da 3D a 2D !

y 2

-z v

1

v

2

y x v

1

v

2

v

0

v

1

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

2

-z v

0

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

-z v

0

v

2

v

2

v

1

normalized projected coordinates 1 -1

x

(3)

Trasformazione di proiezione

• Vecchio problema:

– (in arte, architettura progettazione)

• come riportare

– su un piano (immagine 2D) – oggetti 3D

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

– oggetti 3D

Trasformazione di proiezione

• Modo 1:

– facile: togliamo una coordinata – cioe’ azzeriamo la z

– matrice corrisponente:

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

 

 

=

0 0 0 0

0 0 0 0

0 0 1 0

0 0 0 1

P Z

Inversa?

Trasformazione di proiezione

• E' una proiezione ortogonale

– non c'è prospettiva

– simula una situazione in cui:

• il punto di vista all'infinito

• con un binocolo mooolto potente    

 

=

0 0 0 0

0 0 0 0

0 0 1 0

0 0 0 1

P Z

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

• con un binocolo mooolto potente – direzioni di vista costanti

– Ci manca una scalatura non uniforme

• (causa aspect ratio del monitor / della finestra!)

 0 0 0 0

Trovare le differenze...

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

Come si svolge fisicamente il processo:

• Occhio o macchina fotografica il concetto è lo stesso:

CCD o pellicola

(2D screen buffer)

retina

(2D screen buffer)

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

lenti

lenti

buffer)

distanza

focale distanza

focale

Nostro modello semplificato:

• pin-hole camera

y

image

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

distanza focale

-x -z

image

plane

(4)

Nostro modello semplificato:

nota: nnnniente lenti iente lenti iente lenti iente lenti

– le lenti servivano a "simulare" una pin-hole camera – non modellandole,

ci siamo giocati (per ora) i "difetti" di questa simulazione:

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

i "difetti" di questa simulazione:

• range di fuoco finito

• flares

• distorsioni radiali

Matematicamente

y

-z image plane

x x y

d x z

x

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

-z

distanza focale d centro di proiezione (origine)

x

) , , ( x y z

) , , ( x

p

y

p

z

p

d d z z y y d z

x

p

= x

p

=

p

= / /

Nota:

non è lineare né affine;

non è reversibile.

non mantiene: rapporto fra distanze colineari (ma mantiene: colinearità)

Ritocchiamo la notazione

• Esprimo i punti anche con la notazione

0

con ≠

 

 

 

 

= w

w wz wy wx 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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

 

 w

 

 

w wz wy wx

 

 

 

 

1 z y x divisione per

4ta comp

anche detta normalizzazione affine

Proiezione prospettica

 

 

 

 

=

0 / 1 0 0

0 1 0 0

0 0 1 0

0 0 0 1

d P

matrice di trasformazione per la proiezione prospettica:

questa operazione si fa per ultima.

La 3 e 4 componente

(originali) ci saranno utili !

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

 

 

 

 

=

 

 

 

 

d z

z y x

z y x

/ 1 P

 

 

 

 

1 / /

d d z

y d z

x

divisione per 4ta comp

In realtà non si scarta la terza dimensione:

ci servirà

y P

-z v

1

v

2

normalizzazione affine

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

P

-z v

0

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

x

norm

alizzazione affine

z

x

coordinate proiettate e normalizzate (affine) [ancora 3D!]

Moltiplicazione per la matrice di

proiezione

La parte visibile casca in

[[[[----1,1] x [ 1,1] x [ 1,1] x [ 1,1] x [----1,1] x [ 1,1] x [ 1,1] x [ 1,1] x [----1,1] 1,1] 1,1] 1,1]

quindi dette anche

"Normalized Device Coordinates"

Proiezione prospettica: che effetto fa

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

(5)

Proiezione Prospettica: che effetto fa

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

d infinito

(diventa una proiezione ortogonale)

d piccolo d grande

 

 

=

0 / 1 0 0

0 1 0 0

0 0 1 0

0 0 0 1

d P

Più distorsione prospettica.

Effetto "fish-eye"

(grandangolo)

Proporzioni più mantenute Effetto "zoom"

(eg. vista dal satellite)

Curiosità

• effetto Vertigo – detto anche

“contra-zoom” o “track & zoom” “dolly-zoom”

– aumetare (diminuire) al contempo

• la distanza del POV

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

• la distanza del POV

• la lunghezza focale di campo

– in modo da lasciare inalterati gli oggetti ad una certa profondità d (e dintorni)

– trucco classico in cinematografia (a partire da Hitchcock)

– come trasformazione di matrice?

Considerazione

traslazione rotazione

lu ng he zz e

(isometrie)

ra pp or ti lu ng he zz e su u na li ne a

an go li

(transf. conformali)

co lin ea ril tà

VVVV VVVV VVVV

VVVV VVVV

VVVV VVVV

VVVV

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

rotazione

scalatura uniforme scalatura non uniforme shearing

proiezione ortigonale trasf. affine generica proiezione prospettica (+ rinormalizzazione)

VVVV XXXX XXXX XXXX XXXX XXXX XXXX

VVVV VVVV XXXX XXXX XXXX XXXX XXXX

VVVV VVVV VVVV VVVV VVVV VVVV XXXX

VVVV VVVV VVVV VVVV VVVV VVVV VVVV

Considerazione

v

0

v

1

v

2

x y

z v

0

v

1

v

2

object Coordinates

Modellazione + Vista:

di solito

- scalature uniformi - traslazioni - rotazioni

che mantengono gli angoli Proiezione:

teniamo una sola matrice per entrambe

(la matrice

"Modellazione-Vista") teniamo questa matrice separata (la matrice

"Proiezione")

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

x y

z

v

0

v

1

v

2

world Coordinates

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

2

screen Space

Normalized Device Coordinates 1

1 -1 -1

x

object Coordinates

modellazione

vi st a pr oi ez io ne

viewport Proiezione:

non mantiene gli angoli

Stack di matrici di MODEL-VIEW

V T M R M T R0 teniamo una sola

matrice per entrambe (la matrice

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

M

V T M R M V

"Modellazione-Vista")

da mondo a vista

Riferimenti

Documenti correlati

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

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

[r]

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

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