Si alguno hace renders en 3D: Duda sobre nomenclatura
Publicado: Vie Feb 09, 2018 11:52 pm
Pido ayuda a los que soléis usar programas de animación en 3D (3D Studio, Blender,...), si hay alguno. Os quería preguntar sobre la nomenclatura habitual en este tipo de software a la hora de colocar y orientar la cámara, y establecer el campo de visión abarcado sobre la escena.
Como sabemos la perspectiva la determina la distancia a un sujeto, y la focal determina el ángulo de visión abarcado. En un programa de este tipo por tanto esperaría encontrar poder establecer:
- La situación de la cámara (observador), definido por su posición absoluta (coordenadas, sean cartesianas o de otro tipo).
- La dirección en la que mira, definida por un par de ángulos (azimut, elevación).
- Un campo de visión abarcado (FOV), definido de forma intuitiva como un ángulo en cada eje o bien un ángulo en la diagonal más una relación de aspecto. En fotografía sería la distancia focal más el formato del sensor.
- Imagino que también habrá parámetros para rotar la cámara sobre su eje
Pues bien, el caso es que en una librería basada en Open GL me he encontrado con que si bien puedo controlar todo lo que necesito: posición del observador, perspectiva y ángulo de visión, se usa una nomenclatura confusa y me atrevería a decir que no del todo correcta basada en solo 4 parámetros:
La pregunta es: los programas 3D funcionan así? lo hace la librería Open GL? o tienen parámetros claros e independientes para situar la cámara, orientarla y definir el ángulo de visión?.
Salu2!
Como sabemos la perspectiva la determina la distancia a un sujeto, y la focal determina el ángulo de visión abarcado. En un programa de este tipo por tanto esperaría encontrar poder establecer:
- La situación de la cámara (observador), definido por su posición absoluta (coordenadas, sean cartesianas o de otro tipo).
- La dirección en la que mira, definida por un par de ángulos (azimut, elevación).
- Un campo de visión abarcado (FOV), definido de forma intuitiva como un ángulo en cada eje o bien un ángulo en la diagonal más una relación de aspecto. En fotografía sería la distancia focal más el formato del sensor.
- Imagino que también habrá parámetros para rotar la cámara sobre su eje
Pues bien, el caso es que en una librería basada en Open GL me he encontrado con que si bien puedo controlar todo lo que necesito: posición del observador, perspectiva y ángulo de visión, se usa una nomenclatura confusa y me atrevería a decir que no del todo correcta basada en solo 4 parámetros:
- Código: Seleccionar todo
rgl.viewpoint( theta = 0, phi = 30, fov = 60, zoom = 1, ...)
- Con (theta,phi) determinan la dirección desde la que observamos la escena, asumiendo que miramos hacia el centro de coordenadas del sistema. Son por tanto dos variables que definen una recta que pasa por (0,0,0) y sobre la que está el observador, pero aún no sabemos a qué distancia del (0,0,0). No es posible mirar en otra dirección (la librería está orientada a dibujar funciones referidas a ejes).
- Con fov (field of view) en grados, aparentemente se determina el ángulo de visión, pero en realidad lo que estamos definiendo es la distancia del observador a la escena para que toda ésta sea abarcada por un ángulo de visión fov, y por tanto estamos definiendo la perspectiva (algo que choca con la definición formal de FOV). Por ejemplo con fov=0º se sitúa el observador en el infinito, la perspectiva se hace isométrica, y se contempla toda a escena en el encuadre.
- Y zoom es el parámetro con el que realmente cambiamos el ángulo abarcado, es decir cambiar zoom sería cambiar en fotografía la focal. Al alterarlo no cambia la perspectiva, pero sí el encuadre (lo que antes entraba ahora puede quedar recortado o reducirse de tamaño)
La pregunta es: los programas 3D funcionan así? lo hace la librería Open GL? o tienen parámetros claros e independientes para situar la cámara, orientarla y definir el ángulo de visión?.
Salu2!