2010-12-13 19 views

Respuesta

1

Piense en una línea horizontal de la unidad de longitud a una distancia d de la cámara, de los cuales el campo de vista (es decir, el ángulo de apertura) se establece para que la unidad de la línea larga a la distancia d cubra exactamente el ancho de la imagen (o altura, dependiendo de lo que mida el campo), entonces d es la longitud de la lente. Y también puedes tomar el cálculo inverso.

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

2

"longitud del objetivo" no tiene sentido. La "lente" en OpenGL y DirectX es una cámara estenopeica y, por lo tanto, no tiene tamaño (es decir, es infinitamente pequeña).

Si está hablando de distancia focal, una vez más esto no tiene ninguna relación ya que una distancia focal implica una lente, así como la profundidad de campo.

Sin embargo, puede calcular la posición de la cámara en relación con la pantalla en las unidades que desee (esto me fue enseñado como el "Punto de referencia de perspectiva").

Digamos que la pantalla tiene 1 metro de ancho y el campo de visión es de 90 grados (PI/2 radianes). El uso de la trigonometría básica sabes que

tan(fov/2) = opposite/adjacent. 

Usted sabe opuesto (ya que es la mitad de un metro, es decir, la mitad de la pantalla)

Así que para calcular adyacente (es decir, la distancia entre la pantalla y la posición de la cámara) se Basta con hacer:

adjacent = opposite/tan(fov/2) 

con los números simples por encima de este es para:

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

es decir, en ese caso la cámara estaría a medio metro de distancia de la pantalla (es bastante lógico cuando piensas en un campo de visión de 90 grados).

Las unidades involucradas son, por supuesto, un tanto arbitraria ...

Si luego mira en él. Cuanto más cerca esté la posición de la cámara a la pantalla, más ancho será el campo de visión e, igualmente, cuanto más lejos esté la posición de la cámara, más estrecho será el campo de visión. Si dibujas esto, verás exactamente por qué.

Desde esta base se puede calcular el FOV perfecto para una persona que se sienta "n" metros de distancia de la pantalla ...

6

me di cuenta de que ha pasado mucho tiempo desde que se hizo esta pregunta (por decir lo menos) , pero tenía un buen diagrama y parecía una pena no publicarlo, ya que creo que es útil aquí. Como lo demuestra el diagrama, la relación entre el campo de visión-(theta) y la distancia al plano de la imagen (d) es:

tan(theta/2) = ymax/d 

FOV and distance to image plane

Cuestiones relacionadas