Table of Contents

Ar impulsado por 3d renderizado

El desarrollo de aplicaciones AR requiere resolver un problema fundamental: la renderización de contenido AR. Este artículo tomará el seguimiento de imágenes planas como ejemplo para describir los módulos básicos, el flujo y la implementación de renderización de aplicaciones AR.

Flujo típico de aplicación ar

Una aplicación AR típica generalmente implica identificar imágenes, objetos o escenas específicas a partir de imágenes de cámara, rastrear su posición y orientación, y renderizar contenido virtual (modelos 3D) según esa posición y orientación.

image tracking

Por ejemplo, la imagen superior muestra una aplicación AR de seguimiento de gráficos planos

A continuación se muestra el diagrama de flujo de la aplicación.

flowchart TD
    CameraDevice[Camera Device]
    Tracker[Tracker]
    Renderer[Renderer]

    CameraDevice -->|Image Frame| Tracker
    Tracker -->|Image Frame + Tracked Pose| Renderer

El flujo incluye los siguientes módulos.

Módulo Función
Cámara física Proporciona una secuencia de fotogramas de imagen de entrada. Los fotogramas de imagen incluyen la imagen, la marca de tiempo cuando se generó la imagen y, a veces, también pueden incluir la posición y orientación de la cámara en el espacio
Rastreador Calcula la posición y orientación del objetivo de seguimiento a partir de los fotogramas de imagen. Según el objetivo de seguimiento, existen varios tipos de rastreadores, como rastreadores de imágenes planas y rastreadores de objetos 3D
Renderizador Se utiliza para renderizar la imagen de la cámara y el modelo 3D correspondiente al objeto rastreado en la pantalla. En algunas gafas AR, es posible que no se renderice la imagen de la cámara, solo el modelo 3D

Renderización en teléfonos móviles

La renderización en teléfonos móviles se divide en dos partes: la renderización de la imagen de la cámara y la renderización de objetos virtuales.

Renderización de imagen de cámara

camera image

Al renderizar la imagen de la cámara, hay algunos parámetros a tener en cuenta.

  • Modo de escala

    Por lo general, es necesario llenar toda la pantalla o una ventana con la imagen de la cámara, lo que plantea el problema de la inconsistencia en la relación de aspecto entre la imagen de la cámara y la pantalla/ventana.

    Suponiendo que requerimos que el centro de la imagen de la cámara y el centro de la pantalla/ventana estén alineados, manteniendo la relación de aspecto sin cambios, hay dos modos de escala comunes: escala uniforme y relleno uniforme.

    Modo de escala Efecto
    Escala uniforme Muestra todo el contenido en la pantalla, pero deja bandas negras a los lados o arriba/abajo
    Relleno uniforme No tiene bandas negras, pero recorta parte de la imagen a los lados o arriba/abajo
  • Rotación de imagen de cámara

    En los teléfonos móviles, las imágenes capturadas por la cámara física generalmente están fijas en relación con el cuerpo del dispositivo y no cambian con la orientación de visualización de la pantalla. Sin embargo, los cambios en la orientación del cuerpo del teléfono afectarán nuestra definición de las direcciones arriba, abajo, izquierda y derecha de la imagen. Durante la renderización, la orientación actual de visualización de la pantalla también afectará la dirección de la imagen mostrada.

    Por lo general, durante la renderización, es necesario determinar un ángulo de rotación de la imagen de la cámara en relación con la orientación de visualización de la pantalla.

  • Volteo de imagen de cámara

    En algunos casos se utiliza la cámara frontal, donde generalmente es necesario voltear la imagen horizontalmente para que parezca un espejo.

Renderización de objetos virtuales

virtual object

Al renderizar objetos virtuales en teléfonos móviles, es necesario alinear el objeto virtual con la imagen de la cámara. Esto requiere que coloquemos la cámara de renderizado y el objeto en un espacio virtual completamente correspondiente al espacio real, y utilicemos el mismo ángulo de visión y relación de aspecto de la cámara física para la renderización. La transformación de proyección en perspectiva por la que pasan la imagen de la cámara y el objeto virtual es idéntica, excepto que la transformación de la imagen de la cámara ocurre principalmente en la cámara física, mientras que la transformación del objeto virtual es completamente un proceso computacional.

Renderización en visores

La renderización en visores presenta algunas diferencias respecto a los teléfonos móviles y debe dividirse en dos casos.

  • VST

    Video See-Through se refiere a la tecnología AR donde el visor captura imágenes a través de una cámara física y luego muestra la imagen de la cámara y el contenido virtual en la pantalla del visor. Un representante típico es Vision Pro. Generalmente, la matriz de proyección en perspectiva para la imagen de la cámara y el contenido virtual la configura el SDK proporcionado por el visor; externamente solo es necesario establecer la posición y orientación del contenido virtual. La cámara física utilizada para el seguimiento y la cámara de la imagen renderizada en la pantalla pueden estar en diferentes posiciones, y durante la renderización se realiza una transformación de coordenadas.

  • OST

    Optical See-Through se refiere a la tecnología AR donde la pantalla del visor es transparente y el visor solo muestra contenido virtual en la pantalla. Un representante típico es HoloLens. Generalmente, la matriz de proyección en perspectiva para el contenido virtual la configura el SDK proporcionado por el visor; externamente solo es necesario establecer la posición y orientación del contenido virtual. La cámara física utilizada para el seguimiento y la cámara de la imagen renderizada en la pantalla pueden estar en diferentes posiciones, y durante la renderización se realiza una transformación de coordenadas.

Guía específica de plataforma

La renderización 3D impulsada por AR está estrechamente relacionada con la plataforma. Consulte las siguientes guías según su plataforma objetivo: