2010-12-13 22 views

risposta

1

Pensate a una linea orizzontale di unità di lunghezza a distanza d dalla fotocamera, di cui il campo di vista (cioè l'angolo di apertura) è impostato in modo che la linea lunga dell'unità alla distanza d copra esattamente la larghezza dell'immagine (o altezza, a seconda di cosa si misura il campo), quindi d è la lunghezza dell'obiettivo. E ovviamente puoi anche fare il calcolo inverso.

tan (0,5 FOV) = 0,5 d

2

"lunghezza focale" non ha alcun significato. La "lente" in OpenGL e DirectX è una camera stenopeica e quindi non ha dimensioni (cioè è infinitamente piccola).

Se si parla di lunghezza focale, anche in questo caso non esiste alcuna relazione in quanto una lunghezza focale implica un obiettivo e una profondità di campo.

È tuttavia possibile calcolare la posizione della telecamera in relazione allo schermo in qualsiasi unità desiderata (ciò mi è stato indicato come "Punto di riferimento prospettico").

Diciamo che lo schermo è largo 1 metro e il FOV è di 90 gradi (PI/2 radianti). Usando la trigonometria di base si sa che

tan(fov/2) = opposite/adjacent. 

Voi sapete opposta (come è mezzo metro, vale a dire la metà dello schermo)

Quindi, per calcolare adiacente (cioè la distanza dallo schermo alla posizione della telecamera) si semplicemente:

adjacent = opposite/tan(fov/2) 

Con i semplici numeri di cui sopra questo va a:

adjacent = 0.5/tan(PI/4) 
=> 0.5/1.0 
=> 0.5 

cioè in questo caso la telecamera si trova a mezzo metro di distanza dallo schermo (abbastanza logico quando si pensa a un campo visivo di 90 gradi).

Le unità coinvolte sono, naturalmente, un po 'arbitraria ...

Se poi si guarda in esso. Quanto più la posizione della telecamera è vicina allo schermo, tanto più ampio è il campo visivo, tanto più la posizione della fotocamera risulta più stretta rispetto al FOV. Se li estrai, vedrai esattamente il perché.

Da questa base è possibile calcolare il perfetto FOV per una persona seduta "n" metri dallo schermo ...

6

Mi rendo conto che è passato molto tempo da quando questa domanda è stato chiesto (a dir poco) , ma ho avuto un buon diagramma in giro e mi è sembrato un peccato non postarlo poiché penso che sia utile qui. Come evidenziato dal grafico, il rapporto tra il campo di vista-(theta) e la distanza dal piano dell'immagine (d) è:

tan(theta/2) = ymax/d 

FOV and distance to image plane

Problemi correlati