HOME OGGETTI 3D LIBRI CORSI TUTORIAL FORUM SHOP CONTATTI   LOGIN









Autore Topic: Trasformazioni prospettiche  (Letto 2055 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

marcomasetti

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 183
Trasformazioni prospettiche
« il: 10 Settembre 2012, 23:55 »
Volendo costruire un prospettiva 2D, anche curvilinea, a partire da strutture tridimensionali, succede che ogni elemento oggettivo 3D si riduce a una forma bidimensionale, piana o curva a seconda del tipo di prospettiva.  Nel rendering 3D queste forme bidimensionali finiranno per sovrapporsi, rendendo l’immagine non leggibile.  Pertanto, per realizzare una prospettiva 2D entro lo spazio 3D, occorre costruire in realtà una prospettiva 3D dove la superficie limite risulta molto vicina al quadro, piano o curvo.
Per esempio la prospettiva piana comune si ricava dalle formule:
X’=x*d/(y+d)
Y’=0
Z’=z*d/(y+d)

Dove il quadro coincide con il piano xz, la distanza è pari a d, il punto di vista è situato in (0,-d,0).
Per evitare che si sovrappongano le forme, si utilizzerà in luogo di questa formula, la trasformazione relativa alla prospettiva scenica lineare:

X’=x*d/(y+d)
Y’=y*f/(y+d)
Z’=z*d/(y+d)

Dove ancora il quadro o boccascena coincide con il piano xz. Qui però d rappresenta la distanza tra il piano limite o fondale ed il traguardo, non la distanza dal quadro. Nella prospettiva piana, comunque, quadro e piano limite coincidono. Il traguardo poi è situato in (0,-d,0). Il piano y=-d corrisponde al piano limite inverso.  In più compare il valore f che rappresenta la distanza tra il luogo dei punti uniti, corrispondente al quadro, e il piano limite.   Se f=0 si ricava nuovamente la prospettiva piana.
Scegliendo per f un valore prossimo allo 0 si ottiene nello spazio 3D l’effetto di una prospettiva 2D.

Se si sostituisce il quadro piano con una superficie sferica si costruisce la prospettiva centrale sulla sfera.
Il punto di vista è situato nel centro della sfera coincidente con l’origine, il raggio della sfera è d.
Un punto spaziale di coordinate (x,y,z) viene proiettato sulla sfera in (X’,Y’,Z’):

X’=x*d/sqr(x^2+y^2+z^2)
Y’=y*d/sqr(x^2+y^2+z^2)
Z’=z*d/sqr(x^2+y^2+z^2)

Se il punto oggettivo (x,y,z) giace sul supporto sferico di proiezione, allora sqr(x^2+y^2+z^2)=d, per cui viene proiettato su se stesso: infatti la sfera di proiezione corrisponde al quadro.
Se invece il punto (x,y,z) è situato all’infinito, ad esempio con x tendente a ∞, con y=z=0, risulta:

X’=x*d/sqr(x^2)=d
Y’=0
Z’=0

Infatti il punto (d,0,0) è il punto di fuga sulla sfera della direzione x+.


Consideriamo adesso le trasformazioni:
X’=x*d/(sqr(x^2+y^2+z^2)+f)
Y’=y*d/(sqr(x^2+y^2+z^2)+f)
Z’=z*d/(sqr(x^2+y^2+z^2)+f)

Risulta evidente che per f tendente a 0 si riottiene la proiezione sferica 2D
Il punto improprio dell’asse x+ corrisponde a:  x tendente a +∞, y=z=0
X’=x*d/(x+f)=d/(1+f/x)=d
Y’=0
Z’=0

Quindi la sfera di raggio d corrisponde alla sfera limite, che raffigura il piano improprio
L’origine (0,0,0) viene trasformata in:
X’=0
Y’=0
Z’=0

Si noti che con f=0 l’origine annullerebbe il denominatore e pure il numeratore, con risultato indeterminato.
Il punto sull’asse x di coordinate (n*f,0,0) diventa:
X’= d/(1+f/x)= d/(1+1/n)=d*n/(n+1)
Y’=0
Z’=0

Il che significa che per n = 1, 2, 3, 4, 5, …
risulta: x = d*1/2, d*2/3, d*3/4, d*4/5, … che è una successione prospettica con valore limite d
(vedi Marco Masetti LA PROSPETTIVA SCENICA E TRIDIMENSIONALE, Bologna, Pitagora editrice, pagg.45-46)
Infatti le trasformazioni:
X’=x*d/(sqr(x^2+y^2+z^2)+f)
Y’=y*d/(sqr(x^2+y^2+z^2)+f)
Z’=z*d/(sqr(x^2+y^2+z^2)+f)

Definiscono una prospettiva solida sferica sempre più schiacciata verso la sfera limite di raggio d, man mano che f tende allo 0.  Il valore f>0 esprime, infatti, la distanza oggettiva dal centro di quel punto la cui immagine nella prospettiva solida dista dall’origine d/2, cioè la metà del raggio della sfera limite. Dunque con un valore basso di f sarà un  punto vicino all’osservatore a cadere sulla mediana del raggio della sfera, per cui i punti slittano in avanti. Con un valore di f superiore a d/2, invece, il punto oggettivo situato a distanza f slitterà all’indietro verso il centro della sfera.  Questo valore f è analogo alla distanza per la prospettiva lineare. Infatti con una distanza piccola le trasversali tendono a diradarsi in basso, cioè in prossimità dell’osservatore.

La prospettiva cilindrica non sviluppata 2D proietta i punti dello spazio su un cilindro. Il punto di vista è situato sull’asse del cilindro. In questo caso l’asse del cilindro coincide con l’asse coordinato z, il raggio del cilindro è d; il centro proiezione è posto nell’origine (0,0,0).
X’=x*d/sqr(x^2+y^2)
Y’=y*d/sqr(x^2+y^2)
Z’=z*d/sqr(x^2+y^2)

Come nel caso precedente si può verificare che il cilindro è il luogo dei punti uniti,
infatti se sqr(x^2+y^2)=d si riottenono le coordinate originarie. Per z tendente a infinito, con x,y finiti, anche Z’ tende all’infinito. Infatti la direzione verticale è l’unica a non avere un punto di fuga.

In analogia al caso precedente si può ricavare una prospettiva 3D introducendo il valore f, il cui ruolo è analogo alla distanza:

X’=x*d/(sqr(x^2+y^2)+f)
Y’=y*d/(sqr(x^2+y^2)+f)
Z’=z*d/(sqr(x^2+y^2)+f)

In teoria, procedendo in modo analogo, cioè eliminando x^2 si dovrebbe riottenere la prospettiva lineare:

X’=x*d/y
Y’=y*d/y=d
Z’=z*d/y

In questo caso il quadro è situato parallelamente a xz ad una distanza d.  Il punto di vista si trova in O.
Volendo introdurre per analogia il valore f si avrebbe:
X’=x*d/(y+f)
Y’=y*d/(y+f)
Z’=z*d/(y+f)

In questa omologia, il piano limite inverso cade in y=-f.
Il centro di proiezione è invece situato sull’origine O, infatti le formule sono state ricavate dall’iniziale prospettiva sferica.  Come accade per l’omologia piana, non è detto che il centro debba cadere sul piano limite (in 3D) o sull’asse limite (in 2D). E’ la prospettiva scenica ad essere un caso particolare di omologia 3D con il fuoco appartenente a un piano limite. Nella omologia piana il fuoco cade sull’asse limite quando l’originaria prospettività con piani ortogonali ha il fuoco equidistante dai quadri (altezza del riguardante uguale alla distanza).
per y tendente a tendente a +∞, con x=z=0 risulta:
X’=0
Y’=y*d/(y+f)= d/(1+f/y)=d
Z’=0

Per cui il piano limite principale si trova in y=d.
Rimane da trovare il quadro, o luogo dei punti uniti.   Sul quadro deve risultare:
x=x*d/(y+f) 
y=y*d/(y+f)   
z=z*d/(y+f)
   
da cui si desume:   d/(y+f)=1, d=y+f, y=d-f=q che ci dà la posizione del quadro.
La distanza tra quadro e piano limite è allora data da d-(d-f)=f, mentre l’effettiva distanza dal traguardo al quadro è d-f.  Infatti la distanza tra traguardo e fondale risulta qui essere d, dato che il fuoco è situato in O, mentre la distanza tra i due piani limite è data da d+f
« Ultima modifica: 11 Settembre 2012, 00:13 da marcomasetti »