XSIforum.com

distancia entre camara y objeto relacionada con el formato de imagen

0 Usuarios y 1 Visitante están viendo este tema.

Unaided

  • ***
  • 3293
¿Existe alguna manera de relacionar la anchura y altura (XY) correspondiente al formato de cámara, y la distancia en Z de ésta con un plano?

Lo que busco es que un elemento posicionado en el espacio tridimensional, ocupe la misma posición pero relativa a un espacio bidimensional, con independencia del formato de cámara. La posición en profundidad de la camara en relación al grid y con el formato de cámara. ¿cómo puedo obtener ese valor Z?
« Última modificación: 24 Enero 2015, 15:03:42 por Unaided »

Re:distancia entre camara y objeto relacionada con el formato de imagen
« Respuesta #1 en: 24 Enero 2015, 16:48:04 »
No tengo Softimage para probar, pero esto debería darte la distancia.

Código: [Seleccionar]

                ··
            R ·  ·
            ·    · w
          ·      ·
        · a)     ·
  CAM ······ Z ···
        ·        ·
          ·      ·
            ·    ·
              ·  ·
                ··

w = R * sin(a)
R = w/sin(a)     (1)
Z = R * cos(a)  (2)

Reemplazando (1) en (2):
Z = w/sin(a) * cos(a)
Z = w / tan(a)

Ejemplo:
angle of view = 54.43 -> a = 27.215
plane width = 1          -> w = 0.5

Z = 0.5/tan(27.215)
Z = 0.972268599
« Última modificación: 24 Enero 2015, 19:43:05 por Cesar Saez »

Unaided

  • ***
  • 3293
Re:distancia entre camara y objeto relacionada con el formato de imagen
« Respuesta #2 en: 24 Enero 2015, 19:57:58 »
¡Gracias César!

He tenido que dividir entre 100, el valor de 'w' que he tomado como la mitad del width de la imagen. Entiendo que por la escala del grid que tengo, que toma su tamaño del ancho de la resolución con esta expresión: Passes.RenderOptions.ImageWidth / 100



Unaided

  • ***
  • 3293
Re:distancia entre camara y objeto relacionada con el formato de imagen
« Respuesta #3 en: 26 Enero 2015, 09:12:40 »
Una cuestión, la funcion tan en SI, devuelve el valor en radians? No veo en la documentación si es así.

Unaided

  • ***
  • 3293
Re:distancia entre camara y objeto relacionada con el formato de imagen
« Respuesta #4 en: 26 Enero 2015, 09:55:27 »
Me respondo a mi mismo. Veo que son degrees.

Unaided

  • ***
  • 3293
Re:distancia entre camara y objeto relacionada con el formato de imagen
« Respuesta #5 en: 26 Enero 2015, 11:47:04 »
Debería obtener esa distancia usando el focal length en lugar del fov. ¿es posible?

Re:distancia entre camara y objeto relacionada con el formato de imagen
« Respuesta #6 en: 27 Enero 2015, 14:39:42 »
Es posible, pero hay otras variables en juego (por ejemplo el tamaño del sensor y tal), en wikipedia hay un artículo sobre ello :)
https://en.wikipedia.org/wiki/Angle_of_view

Unaided

  • ***
  • 3293
Re:distancia entre camara y objeto relacionada con el formato de imagen
« Respuesta #7 en: 27 Enero 2015, 20:19:14 »
XSI hace interactivamente una conversión entre el ángulo y la distancia focal, con lo cual debe tener en cuenta un teórico valor de tamaño de película o sensor, entiendo. De todos modos para la distancia focal, no se necesitaría conocer el tamaño del sensor (al menos en una cámara real); si para el ángulo y para la apertura o FOV.

Pero en el caso de cámaras de otros softs, y/o motores de render que no disponen de la propiedad angle of view, hay que usar la distancia focal para encontrar la distancia que buscaba. De igual modo, debe haber una relación del ancho y alto de la imagen con el tamaño de la película, para poder obtener el valor que me diste a través de la formula anterior con el ángulo.

Unaided

  • ***
  • 3293
Re:distancia entre camara y objeto relacionada con el formato de imagen
« Respuesta #8 en: 27 Enero 2015, 21:20:15 »
Creo que ya he dado con la formula para obtener el valor que busco para desplazar el grid en función del tamaño de imagen, pero atendiendo al focal length en lugar del ángulo del fov.

Para el valor en Z entre el objeto y la cámara:
Código: [Seleccionar]

ImageWidth / (ImageWidth / FocalLength)

Mientras que uso el ImageWidth / 100 y ImageHeight / 100 para controlar el tamaño del 'sensor', la apertura en horizontal y vertical, Además para el tamaño del grid, ImageWidth para su anchura y ImageWidth * ImagePixelAspect para la altura, para los formatos que no tienen un pixel cuadrado.