• Non ci sono risultati.

Prospettiva Classica

N/A
N/A
Protected

Academic year: 2021

Condividi "Prospettiva Classica"

Copied!
5
0
0

Testo completo

(1)

Costruzione di Interfacce Lezione 6

Proiezioni Prospettiche e ortogonali

cignoni@iei.pi.cnr.it http://vcg.iei.pi.cnr.it/~cignoni

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 2

Trasformazioni

™Due trasformazioni vengono applicate ai vertici della geometria che voglio disegnare

™Trasformazione di Modellazione

™Porta la geometria nel sistema di riferimento standard della camera

™Proiezione di vista

™Proietta la geometria dal sistema di riferimento della camera sul piano di proiezione.

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 3

Elementi di base

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 4

Prospettiva Classica

™Il problema è quello classico, da sempre affrontato, nell’arte, in architettura e della progettazione, di riuscire a riportare su di un piano, in maniera rigorosa un oggetto tridimensionale.

Proiezioni ortografiche classiche

™L’oggetto ha una struttura regolare, ben assimilabile ad un parallelepipedo;

™Proietto sui lati del box.

™Centro di proiezione, all’infinito,

™proiettori paralleli e perpendicolari al piano di proiezione

™Piano di proiezione perpendicolare agli assi del sistema di riferimento

Proiezioni Assonometriche

™Piani di proiezione in posizione non vincolata:

™Centro di proiezione, all’infinito,

™proiettori paralleli e perpendicolari al piano di proiezione

™Piano di proiezione:

™Simmetrico ai 3 assi (isometrica)

™Simmetrico rispetto a 2 assi (dimetrico)

™Posizione qualsiasi (trimetrica)

(2)

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 7

Proiezioni Oblique

™Proiettori paralleli ma non

perpendicolari al piano di proiezione

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 8

Ortografica

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 9

Proiezioni prospettiche

™Caratteristica principale:

™diminuzione della dimensione apparente degli oggetti all’aumentare della distanza dall COP.

™I proiettori passano tutti per il COP

™Caso Classico

™Il centro di proiezione simmetrico rispetto alla finestra nel piano di proiezione

™Caso generico,

™COP svincolato dal piano di proiezione

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 10

Prospettiva classica

™Al solito nella visione tradizionale del disegno tecnico si è soliti distinguere vari tipi di proiezione prospettica, indicando il numero di punti all’infinito (vanishing points);

™a) three vanishing points

™b) two vanishing points

™c) one vanishing points

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 11

Prospettiva Classica

™In realtà questi, come nel caso ortogonali sono solo vincoli sul piazzamento del piano di proiezione

™One point Persp: Piano di proiezione parallelo ad uno dei piani del sistema di riferimento

™Two point Persp: Piano di proiezione perpendicolare ad uno dei piani del sistema di riferimento

™Three Point Persp: Piano di proiezione Libero

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 12

Camera Frame

™Si assume che la camera sia piazzata con il centro di proiezione sull’origine e diretta verso l’asse z negativo.

™È compito della matrice di Modellazione portare gli oggetti in questo frame.

™Questo sistema di riferimento è detto camera frame, o eye frame

x y

z

(3)

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 13

Sistemi di coordinate in OpenGL

™ Object:

™la ruota con l’origine nel centro.

™ World:

™la ruota piazzata nel sistema di riferimento del mondo (e.g. quello classico con y = alto del mondo, ecc,).

™Cambia quando si muove la macchina

™ Eye:

™Il sistema di riferimento in cui l’origine e’ il centro di proiezione, la z è la direzione di vista ecc.

™Cambia quando muovo l’osservatore.

™ Clip

™ Normalized device

™ Window

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 14

Sistema di riferimento della Camera

™Come si specifica il sistema di riferimento della camera?

™Matrice di trasformazione che fa parte delle matrici di modellazione

™Passa dalle coordinate di mondo alle coordinate di occhio

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 15

Piazzare la camera









= −

1 0 0 0

1 0 0

0 0 1 0

0 0 0 1

T d

?

™Caso semplice,

™Voglio piazzare la camera in modo che inquadri oggetti centrati sull’origine (del sistema di riferimento mondo), guardando lungo la z negativa (come di default)

™E` solo una traslazione sull’asse z:

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 16

Piazzare la camera

™Caso Generale

™Definire una camera significa definire una proiezione (prospettica)

™La camera (il centro di proiezione) è centrata in un punto detto VRP (view Reference Point)

™Il Piano di proiezione è perpendicolare ad un vettore VPN (view plane normal)

™Del piano e’ necessario specificare anche l’orientamento, quindi

™Si specifica VUP (view up vector)

Piazzare la camera

™La trasformazione non e’ altro che un cambio di sistemi di riferimento.

™Basta definire gli assi e l’origine del un sistema di riferimento in termini dell’altro.

™Noi abbiamo la posizione della camera nel sistema di riferimento world

™Dobbiamo ancora esprimere gli assi del sistema di riferimento camera in sr World.

Camera axis in world space

™Uno alla volta.

™L’asse z della camera e’ semplicemnte la direzione di proiezione, cioe’ la normale al piano di proiezione

™L’asse x della camera deve essere perpendicolare al vettore up e all’asse z appena trovato

™L’asse y e’ semplicemente il prodotto vettore tra gli altri due assi che ho trovato (attenti al segno)

z up x= ×

x z y= ×

(4)

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 19

Cambio di Frame

™Dati due sistemi di riferimento.

™Esprimiamo uno in termini dell’altro:

™Questo definisce la matrice 4x4 di cambiamento di frame

{v1,v2,v3,P0} {u1,u2,u3,Q0}

0 3 43 2 42 1 41 0

3 33 2 32 1 31 3

3 23 2 22 1 21 2

3 13 2 12 1 11 1

P v v v Q

v v v u

v v v u

v v v u

+ + +

=

+ +

=

+ +

=

+ +

=

γ γ γ

γ γ γ

γ γ γ

γ γ γ









=

1 0 0 0

43 42 41

33 32 31

23 22 21

13 12 11

γ γ γ

γ γ γ

γ γ γ

γ γ γ M

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 20

Cambio di Frame

™La matrice di cambiamento di frame

™Date le due rappresentazioni a,b in coordinate omogenee in differenti frame (sia di un vettore che di un punto), vale:









=









0 3 2 1

0 3 2 1

P v v v

Q u u u

M

b M a a

b

bT T T T

P v v v

P v v v M Q

u u u

=









=









=









0 3 2 1

0 3 2 1

0 3 2 1

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 21

™Noi abbiamo

™Camera e suoi parametri in coordinate di mondo.

™Vogliamo trovare la trasf M che prenda la rappresentazione di un punto pwin coordinate omogenee spazio di mondo e ne dia la sua rappresentazione in coordinate di camera pe.

w

e Mp

p =

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 22

Eye to World

™Esprimo il sistema di riferimento della camera in termini dello spazio di mondo

e

w Mp

p = {u,v,n,P0} {x,y,z,0}









= + + +

= + +

=

+ +

=

+ +

=

1 0 0 0 0

0

z z z z

y y y y

x x x x

z y x

z y x

z y x

z y x

p n v u

p n v u

p n v u

z p y p x p P

z n y n x n n

z v y v x v v

z u y u x u u

M

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 23

World to eye

™A noi serve la matrice inversa:

™da world a eye

™Per invertirla si nota che la possiamo scrivere come un prodotto tra Rot e Tras

















=

=









=

1 0 0 0

0 0 0

1 0 0 0

1 0 0

0 1 0

0 0 1

1 0 0 0

z z z

y y y

x y x

z y x

z z z z

y y y y

x x x x

n v u

n v u

n v u

p p p

p n v u

p n v u

p n v u

TR M

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 24

World to Eye

™Invertire Traslazioni e rotazioni è facile…

( ) =

















=

=

=

1 0 0 0

1 0 0

0 1 0

0 0 1

1 0 0 0

0 0 0

1 1 1 1

z y x

z y x

z y x

z y x

p p p

n n n

v v v

u u u T R TR M









1 0

0 0

z z y y x x z y x

z z y y x x z y x

z z y y x x z y x

n p n p n p n n n

v p v p v p v v v

u p u p u p u u u

(5)

11 Ott 2002 Costruzione di Interfacce - Paolo Cignoni 25

In opengl

™Grazie al cielo in opengl tutto ciò è ben semplice

™gluLookAt( eyex, eyex, eyex, atx,aty,atz, upx,upy,upz);

™Definisce la trasformazione che porta dallo spazio di mondo allo spazio di eye;

™NOTA bene la gluLookAt va nella ModelView Matrix

Riferimenti

Documenti correlati

™Una rotazione viene espressa come una serie di tre rotazioni sui tre assi. ™Deriva dal modo con cui si descrive l’orientamento di un

™Il processo di trovare tutti i pixel che nel frame buffer appartengono alla primitiva è detto

™Proietta la geometria dal sistema di riferimento della camera sul piano di proiezione. Costruzione di Interfacce - Paolo

17 Ott 2003 Costruzione di Interfacce - Paolo Cignoni 2}. Sempre

cout << e.tagName() << endl; // the node really is an element. n

™ Restituisce la posizione del punto indicato dal mouse nel sistema di riferimento definito al momento in cui sono state prese le matrici model e proj. ™ ATTENZIONE A QUANDO

™ In un una pinhole camera è facile determinare come si forma l’immagine sul fondo della camera (piano della pellicola). ™ Il pinhole è detto

™La CWinApp class è la classe base da cui si deriva la classe per rappresentare un applicazione.. ™Si definiscono funzioni membro per inizializzare la propria applicazione (ed