• Non ci sono risultati.

Matrici di Proiezione Prospettica

N/A
N/A
Protected

Academic year: 2021

Condividi "Matrici di Proiezione Prospettica"

Copied!
3
0
0

Testo completo

(1)

1

Matrici di Proiezione Prospettica

™Assunto che siamo nel sistema di riferimento della camera con il centro di proiezione nell’origine, e il piano di proiezione a distanza d lungo l’asse -z

™Vogliamo trovare la proiezione

sul piano di proiezione di un punto ( x , y , z ) ) , , ( x

p

y

p

z

p

Proiezione Prospettica

™Si ottiene che:

™Nota che questa trasformazione non è lineare, né affine, né reversibile.

d z y y d z x x

d x z x

p p

p

/

/ =

=

=

Coordinate Omogenee

™

Estendiamo la nostra def di coordinate omogenee dicendo che un punto p può essere rappresentato come

™

Un punto in 3D corrisponde ad una linea in 4d.

™

Posso sempre recuperare la forma con 1 come quarto elemento

™

Posso fare matrici che modificano il quarto elemento.

0 con ≠

 

 

 

 

= w

w wz wy wx

p

Coordinate Omogenee

™

In particolare possiamo definire la matrice

Che effettua la trasformazione prospettica, purchè si normalizzi dividendo per la quarta componente

 

 

 

 

 

 

 

 

 

 

=

=

 

 

 

 

=

 

 

 

 

=

1 / /

/ 1

0 / 1 0 0

0 1 0 0

0 0 1 0

0 0 0 1

d d z

y d z

x

d z

z y x

z y x

d

Mp q p

M

Proiezione prospettica in opengl

™

Finora abbiamo definito solo l’operazione di proiezione.

™

Per definire una camera dobbiamo anche definire il view volume

™Angle of view

™Near and far clipping planes

Proiezione prospettica in opengl

™

glFrustum(xmin,xmax,ymin,ymax,near,far);

™

gluPerspective(fov,aspect,near,far)

-far

-near -near

-far

(2)

2

Proiezioni Ortogonali

™Caso particolare di proiezione parallela in cui le linee di proiezione sono perpendicolari al view plane

™La proiezione è semplicemente

= 0

=

=

p p

p

x y y z

x

 

 

 

 

 

 

 

 

=

 

 

 

 

1 0 0 0 0

0 0 0 0

0 0 1 0

0 0 0 1

1

z y x

z y x

p p p

Proiezioni Ortogonali in OpenGL

™

glOrtho(xmin,xmax,ymin,ymax,near,far);

™

I clipping planes sono a z= -near e z=-far

-far

-near -near

-far

Hidden Surface Removal

™

Si deve disegnare sul frame buffer solo quelle porzioni di primitive che sono davanti a tutte le altre; esistono numerosi algoritmi

™

Tecnica Zbuffer, per ogni pixel dello schermo memorizzo la minima distanza dal centro di proiezione disegnata

in quel pixel.

™

Quando rasterizzo, disegno (e aggiorno lo zbuffer, solo se davanti.

Window e Device coords

™In Opengl si distingue tra

™Normalized Device (screen) Coords

™Sono 3d, quel che si vede e’ nel canonical

view volume.

™Window Coord

™Sono sempre 3d, ma con x,y espresse in

pixel, e la z in [0,1];

Normalized Device Coord

™In Opengl Perspective Transf + division Convertono a Normalized Device Coord

™La geometria è quindi clippata sul Canonical View Volume

1 1 1

±

=

±

=

±

=

z y x

Mapping the view volume

™

Sul Canonical view Volume,

™

In questo caso la proiezione ortografica diventa

(1,1,-1)

(-1,-1,1)

















− +

− −

− +

− +

0 0 0

0 2 0

2 0 0

0 2 0

min max

min max min

max

min max

min max min

max

near far

near far near far

y y

y y y

y

x x

x x x

x

(3)

3

Mapping the View Volume

™

Anche le trasf prospettiche mappano sul canonical view volume

™

In questo caso l’applicazione della matrice di proiezione prospettica distorce la scena in maniera tale da introdurre il rimpicciolimento prospettico.

-1

-1

Window Coordinate

™Il passaggio da normalized device coords a window coord. è gestito dalla viewport transformation

( )

( )

( )

( )

( )

[ ]

coord device

normalized in

punto finestra della centro

finestra della dimensioni

T d d d

y x

y x

d y d y

x d x

w w w

z y x

o o

p p

z o y p

o x p

z y x

, , , ,

2 / 1 2 /

2 /

 

 

+ + +

=

 

 

Window Coordinate

™

In opengl il passaggio da Normalized Device (screen) Coords a window coord e’ controllato dal comando

™

glViewport(x,y,w,h)

x,y origine del lower left corner della finestra w,h dimensioni in pixel della finestra

™

Nota in effetti anche la z puo’ essere mappata in un range diverso (ma sempre incluso) da [0,1]

™

glDepthRange(znear, zfar)

Riferimenti

Documenti correlati

31, XIII Legislatura, Commissione parlamentare d’inchiesta sul fenomeno della mafia e delle altre associazioni criminali similari, Relazione sullo stato della lotta alla

Una possibilità potrebbe essere la richiesta di attuare un determinato intervento con una valutazione sperimentale controllata su scala ridotta che, in relazione agli esiti,

Coordinamento: dr.ssa SIMONETTA MARINANGELI - CONSULTORIO FAMILIARE Telefono 0424 885421 fax 0424 885416 e-mail: [email protected] Destinatari: Insegnanti e

formativo - collaborativo ed organizzativo con i Docenti di riferimento, per la programmazione delle attività e per la scelta alternativa del film da proporre alla classe, a

La carta geografica serve per rappresentare un territorio: la terra, un continente, un paese, una regione, una città, un quartiere.. Che cosa rappresentano queste

Denominazione struttura conservativa - livello 1: Civiche Raccolte Grafiche e Fotografiche del Castello Sforzesco Denominazione struttura conservativa - livello 2: Raccolta delle

so che anche in questa splendida zona della Sicilia sono numerosi gli Allievi ed ex-Allievi dei corsi Scuola Radio Elettra che vedrebbero con favore l'istituzione di un

Proiezione e procedura di Gram-Schmidt.