Table of Contents

Crear contenido 3D alineado con precisión a la escena real

Este documento presenta cómo colocar objetos virtuales con precisión en una ubicación específica del espacio real y alinearlos exactamente con el espacio físico en experiencias de AR.

Antes de comenzar

Nota

El siguiente contenido y las herramientas solo son aplicables al proceso de desarrollo de aplicaciones Unity utilizando EasyAR Mega.

Si está desarrollando una mini-programa, consulte Crear y cargar anotaciones utilizando el editor de Unity (desarrollo de mini-programas).

Si no está desarrollando una aplicación Unity pero desea ver los resultados del mapeo Mega, consulte Vista previa de la malla de escena real 3D en la guía de uso de Mega.

Si no está desarrollando una aplicación Unity pero necesita simular la ejecución para ver el efecto de localización, consulte Vista previa del efecto de simulación de ejecución en la guía de uso de Mega.

Este artículo requiere que los siguientes paquetes de Unity ya estén importados en el proyecto:

  • com.easyar.sense
  • com.easyar.mega

Block datos de escena real

En el desarrollo de Mega, se pueden usar varios datos de escena real para ayudar a colocar contenido 3D:

  • modelo de malla block

    alt text

  • panorámica (con oclusión de modelo espacial)

    alt text

    Nota

    Algunos datos no admiten panorámicas.

  • LCC 3D splatting gaussiano

    alt text

    Nota

    Los datos de LCC 3D splatting gaussiano solo están disponibles en escenarios de uso después de que se han recolectado con el dispositivo de su dominio y completado el mapeo.

Habilitar herramienta de editor

Primero necesitas añadir objetivo de seguimiento Mega en el editor, luego seleccionar el objetivo de seguimiento y hacer clic en el botón Create Editor Tool.

Consejo

Si la aplicación necesita crear el objetivo de seguimiento en un script en lugar de crearlo dentro del editor, después de colocar todo en el editor, puedes registrar el objetivo de seguimiento y/o sus objetos hijos, configurar el objetivo de seguimiento mediante script en tiempo de ejecución y montar los objetos hijos bajo el objetivo de seguimiento.

Comprueba la información del servicio y conéctate al servicio.

Importante

Debes comprobar los permisos de la API Key antes de conectar.

  • Si el Type del servicio es Block, debes asegurarte de que la API Key utilizada tenga permiso para acceder al servicio Mega Block y al servicio SpatialMap.
  • Si el Type del servicio es Landmark, debes asegurarte de que la API Key tenga permiso para acceder al servicio Mega Landmark.

alt text

Cuando los permisos son insuficientes, verás un mensaje de error de fallo de autenticación al conectar el servicio.

alt text

Si el origen de datos del target está configurado correctamente, después de conectar el servicio normalmente, podrás ver la hora de actualización de datos y la interfaz de control de datos del editor de block.

Consejo

Si el origen de datos del target se deja vacío, después de conectar el servicio normalmente, podrás ver la lista de datos de block en el servicio. Después de seleccionar el block que necesitas usar, también puedes entrar a la interfaz de control de datos del editor de block, y el origen de datos del target se rellenará automáticamente.

Los datos de la herramienta de editor se almacenan bajo el nodo EasyAR.Mega.EditorTool, eliminar este nodo es equivalente a eliminar los datos de la herramienta de editor.

Precaución

No puedes modificar directamente el contenido del nodo EasyAR.Mega.EditorTool, especialmente no puedes modificar el Transform de este nodo, de lo contrario puede causar que la herramienta de editor no funcione correctamente o que la posición de visualización del contenido sea incorrecta durante el seguimiento.

Cargar modelo block

Haz clic en la primera casilla de selección debajo de los datos block, esto iniciará el proceso de carga de los datos del editor block. Después de la carga, puedes ver el mesh del block actual en la ventana Scene.

Consejo
  • el block mesh está alineado con el espacio de seguimiento del objetivo del block, puedes colocar directamente contenido 3D sobre el modelo.
  • el block mesh cambia de LOD según la posición de la cámara, debes mantener la conexión a internet durante el uso para evitar fallos en el cambio de LOD.
  • el block mesh se almacena bajo el nodo de herramienta, solo existe en el modo editor y no se empaquetará en la aplicación final.

Montar contenido 3D en el nodo block

Después de cargar el modelo block, monta el contenido 3D como nodo hijo bajo el nodo Block en la escena.

alt text

Precaución
  • Los objetos 3D no se pueden colocar bajo el nodo EasyAR.Mega.EditorTool. Este nodo es solo para herramientas del editor y puede ser eliminado o reconstruido automáticamente en algunos casos.
Importante
  • Los objetos 3D deben colocarse bajo el nodo block para garantizar que la posición de renderizado del contenido virtual sea correcta en tiempo de ejecución.

Colocación precisa de contenido 3D

Puedes colocar contenido virtual con precisión en el espacio real siguiendo estos pasos.

Colocación según el modelo de malla block

Ajusta la posición y rotación del contenido 3D con la block mesh en la escena, para llevarlo a la posición y orientación deseadas.

Consejo
  • Después de que el editor entre en el modo play, la block mesh sigue estando disponible, pero no cambiará de LOD según la posición de la cámara.
  • La block mesh se almacena bajo el nodo de herramienta, existe solo en el modo editor y no se empaquetará en la aplicación final.

[Opcional] Colocar según la imagen panorámica

Haga clic en la casilla de verificación Panorama Preview Marker para mostrar los marcadores panorámicos.

Nota
  • Algunos datos no admiten imágenes panorámicas.

Haga clic en cualquier marcador panorámico para colocar contenido en esa posición en el modo panorámico. Puede hacer clic en diferentes marcadores panorámicos para cambiar la vista panorámica y verificar que la posición del contenido 3D sea correcta desde diferentes ángulos.

alt text

Consejo
  • Al colocar contenido usando marcadores panorámicos, la oclusión del modelo espacial basado en malla sigue siendo efectiva.
  • Esta función sigue disponible después de que el editor entra en modo de reproducción, pero la precisión de la oclusión del modelo espacial basado en malla se ve afectada por la desactivación del cambio de LOD.
  • Los marcadores y datos de la imagen panorámica se almacenan bajo el nodo de la herramienta, solo existen en el modo editor y no se incluirán en la aplicación final.

[Opcional] Colocación basada en LCC 3D Gaussian Splatting

Nota

Este contenido se aplica a escenarios de uso después de la captura de datos con un dispositivo propio y la finalización del mapeo. Los resultados de mapeo obtenidos con otros dispositivos no contienen datos LCC 3DGS.

Si ha utilizado la función LCC 3D Gaussian Splatting (LCC de dominio propio), puede ajustar la posición del modelo haciendo referencia al 3DGS. Para el uso de datos LCC, consulte Cargar datos LCC y alinearlos con la malla.

Impacto de las deficiencias de datos de escenas reales en la colocación de contenido

¿qué hacer si el modelo de block cargado no está horizontal

Selecciona el nodo de block que quieres ajustar en el panel Hierarchy, modifica Rotation en el panel Inspector hasta que la orientación del modelo se vea correcta en el editor de Unity.

El transform del nodo de block en el sistema de coordenadas mundial no afecta al sistema de coordenadas local del block, y por lo tanto no afecta el resultado de renderizado del contenido 3D que es nodo hijo del block. Su transform no tiene ninguna relación con el efecto de visualización final.

Precaución

No puedes modificar el Transform de EasyAR.Mega.EditorTool bajo el nodo de block, de lo contrario puede causar que la herramienta del editor no funcione correctamente o que la posición de visualización del contenido sea incorrecta durante el seguimiento.

¿Qué hacer si el modelo de bloque cargado está roto o tiene partes faltantes?

En el proceso de reconstrucción 3D, si la cobertura de las perspectivas de captura no es completa, pueden aparecer partes rotas o faltantes en el modelo denso generado.

Partes rotas o faltantes

Frente a un modelo incompleto, si la precisión de alineación del contenido 3D en las partes rotas/faltantes no es muy alta, se puede colocar el contenido 3D haciendo clic en marcadores panorámicos y comparándolos con la imagen panorámica. Luego, se puede verificar el efecto haciendo clic en diferentes posiciones de marcadores panorámicos cercanos.

Colocación mediante imagen panorámica

Si la precisión de alineación del contenido 3D en las partes rotas/faltantes es muy exigente, será necesario complementar o actualizar el mapa mediante actualización incremental o actualización completa sin pérdidas. Generalmente, estas áreas indican que no fueron cubiertas durante el proceso de captura de imágenes. Dentro de estas áreas, el efecto de posicionamiento de Mega se verá afectado, y alinear el contenido 3D solo en el editor no será suficiente.

Próximos pasos

Temas relacionados