Table of Contents

Elegir un motor 3D antes del desarrollo de realidad aumentada

El primer paso en el desarrollo de AR es elegir un motor 3D adecuado. Este capítulo explica por qué se necesita un motor 3D, los motores 3D comunes en el desarrollo de AR y sus ventajas y desventajas respectivas.

Por qué AR necesita un motor 3D

La realidad aumentada no consiste simplemente en superponer imágenes 2D o 3D sobre la vista de la cámara, sino que es un sistema 3D en tiempo real. Sus capacidades principales también pueden incluir:

  • Modelado de cámara real

    Para que los objetos virtuales renderizados parezcan más reales en el mundo físico, la matriz de proyección de la cámara del motor 3D usado para renderizar debe ajustarse según los parámetros utilizados por la imagen de la cámara real, como intrínsecos, extrínsecos y modelo de distorsión.

  • Gestión del sistema de coordenadas espaciales

    Gestión unificada de la posición y pose de dispositivos, entorno, contenido AR y otros elementos, incluyendo selección, configuración y conversión entre coordenadas del mundo, coordenadas de la cámara y coordenadas del dispositivo.

  • Renderizado 3D en tiempo real

    Implementa una oclusión realista entre objetos virtuales y el entorno basada en la profundidad de escena estimada en tiempo real o en la mesh reconstruida, y simula sombras mediante algoritmos de estimación de iluminación para lograr una fusión realista entre contenido virtual y real.

  • Gestión de recursos y ciclo de vida

    Gestiona recursos y contenido AR virtuales, cubriendo el ciclo de vida de carga, presentación y descarga.

Estas capacidades constituyen las responsabilidades principales de un motor 3D típico. Por lo tanto, elegir un motor 3D apropiado según los requisitos concretos del proyecto es uno de los requisitos previos necesarios para implementar rápidamente efectos AR.

Motores 3D comunes

EasyAR admite varios motores 3D, incluidos motores 3D comunes como Unity, Unreal y desarrollo native. EasyAR proporciona ejemplos y documentación de desarrollo para Unity y Native.

Unity

Unity se posiciona como un motor 3D en tiempo real de propósito general y actualmente es la primera opción para la mayoría de desarrolladores AR. Unity admite de forma nativa el desarrollo multiplataforma para Windows/macOS e iOS/Android/visionOS. El ecosistema de Unity es maduro, con documentación y ejemplos completos.

Native

En comparación con el uso de motores empaquetados de alto nivel como Unity, desarrollar AR directamente con API gráficas native como OpenGL, Vulkan y Metal tiene las siguientes ventajas: menos dependencias del sistema, un entorno de ejecución extremadamente simplificado y personalización profunda de modelos de cámara y algoritmos de bajo nivel. El desarrollo con API native tiene altos costes de ingeniería y mantenimiento, carece de editores y herramientas de depuración maduros, tiene baja eficiencia de iteración y gran dificultad multiplataforma. No favorece la entrega rápida a nivel de producto y normalmente se usa para implementar funciones sencillas.

Web

Web no requiere instalación y puede usarse directamente en el navegador, por lo que el coste de distribución y alcance de usuarios es extremadamente bajo. Es naturalmente multiplataforma, adecuado para lanzamientos rápidos y acceso masivo de usuarios, y tiene un umbral de desarrollo relativamente bajo con un ecosistema frontend maduro.

Actualmente Web sigue estando relativamente limitado en aplicaciones AR. Las principales limitaciones son que el rendimiento está restringido por navegadores y security sandbox, el soporte de capacidades AR centrales como motion tracking, occlusion e iluminación precisa es insuficiente, el acceso a capacidades del dispositivo es limitado, y la estabilidad y consistencia son difíciles de garantizar. Por lo tanto, Web AR es adecuado para presentaciones ligeras y marketing, pero no para aplicaciones AR complejas de alta precisión y fuerte interacción.

Lectura adicional