Escalado de imágenes AR en función de la distancia desde la cámara

Estoy desarrollandouna realidad aumentada aplicación de iPhone

Básicamente, lo que debería hacer es mostrar las imágenes asignadas a ubicaciones geográficas cuando las mire por la cámara. Cada imagen puede entenderse como una valla publicitaria que tiene su posición geográfica y un rumbo (entendida como un ángulo entre su plano y el eje de dirección norte).

El objetivo es hacer que estos carteles se muestren más o menos como si fueran objetos físicos. Deben ser más grandes si están cerca de ellos y más pequeños cuando están más lejos. También deben aparecer en una perspectiva adecuada cuando no se pare directamente frente a ellos.

Creo que he logrado ese objetivo más o menos.Al medir el rumbo inicial del iPhone a una imagen, puedo decidir sobre el ángulo de rotación de las imágenes tal como las ve la cámara (para verlas desde una perspectiva adecuada).

Sin embargo, si se trata de escalarlas en función de la distancia del teléfono, creo que me equivoqué. Supuse que la distancia máxima de visión es, digamos, 200 m. Luego, las carteleras que se encuentran a 100 m del teléfono se muestran en un 50% de su tamaño original. Eso es. Una escala lineal basada en la distancia máxima.

Lo que me perdí por este enfoque es el tamaño de las vallas publicitarias (entendidas como objetos físicos). La forma en que se muestran en la pantalla depende de su tamaño en píxeles solamente. Esto significa que la resolución de la pantalla es un factor que decide cómo los percibe. Así que asumo que si obtienes dos teléfonos con las mismas dimensiones de pantalla pero diferentes resoluciones, las mismas imágenes serán de diferentes tamaños en ambos. Estoy en lo cierto?

Entonces, finalmente, mi pregunta es ¿Cómo acercarse a las imágenes de escala para que se vean bien en la vista AR?

Creo que debería tener en cuenta algunos parámetros de la cámara. Cuando un objeto de 10x10 cm está justo delante de la cámara, puede cubrir toda la pantalla. Pero cuando lo pones unos metros más lejos, se convierte en un detalle menor. Entonces, ¿cómo abordar la escala? Si decido asignar dimensiones físicas a mis carteles virtuales, ¿cómo escalarlas en función de la distancia de la cámara?

¿Tengo razón en que debo asignar dimensiones físicas en metros a cada imagen (independientemente de su tamaño en píxeles) y mostrarlas según las dimensiones y algún factor de escala dependiente de la cámara?

¿Podría por favor ayudarme en eso? Cualquier pista será útil. ¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta