• 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

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

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

Coordinamento: dr.ssa SIMONETTA MARINANGELI - CONSULTORIO FAMILIARE Telefono 0424 885421 fax 0424 885416 e-mail: serviziperlafamiglia@aulss7.veneto.it 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

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

Proiezione e procedura di Gram-Schmidt.

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

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