Table of Contents

Implementar oclusión con EasyAR Mega en Unity

La oclusión es una tecnología clave para mejorar la inmersión de la fusión entre lo real y lo virtual en AR. Este artículo introduce cómo lograr el efecto de oclusión en Unity a través de EasyAR Mega.

Antes de comenzar

Métodos de implementación de oclusión

  • Modelado fuera de línea: En el sistema de coordenadas del Bloque, crear geometrías que coincidan 1:1 con entidades del mundo real (como paredes, columnas, equipos grandes); o procesando el modelo denso del Bloque mediante recorte y reducción de polígonos para obtener un modelo optimizado.
  • Alineación en tiempo de ejecución: En tiempo de ejecución, alinear el sistema de coordenadas del Bloque con el espacio real a través del posicionamiento en la nube y cargar la geometría correspondiente.
  • Reemplazo de material: Asignar materiales de oclusión especiales a estas geometrías.
  • Efecto visual: Cuando la GPU renderiza otros objetos virtuales, los píxeles de las partes ocluidas se descartan automáticamente debido a que no pasan la prueba de profundidad, haciendo que los objetos virtuales sigan la lógica de oclusión del espacio físico real.

Usar geometrías para oclusión

Sigue los pasos a continuación para agregar geometrías de oclusión a la escena y verificar el efecto.

Colocar geometrías de oclusión

Usar geometrías integradas o geometrías propias como oclusión, colocadas en la posición correcta dentro del sistema de coordenadas del Bloque, según el modelo denso del Mega Block. Colocar geometrías de oclusión

[Opcional] Ajustar la posición de las geometrías según la imagen panorámica

Ajustar la oclusión según la imagen panorámica

Asignar material de oclusión a las geometrías

Cambiar el material de la geometría a un material de oclusión. Se puede usar el SpatialMappingOcculusion incluido en Unity. Ajustar la oclusión según la imagen panorámica

Simular la ejecución con datos EIF o ejecutar en un dispositivo real

Se puede ajustar la colocación del modelo de oclusión según el efecto de ejecución.

Usar el modelo denso recortado y reducido como oclusión

Sigue los pasos a continuación para exportar el modelo denso del Mega Block, recortarlo y reducir sus polígonos para obtener un modelo blanco para oclusión, e importarlo a la escena como oclusión.

Exportar en Mega Blocks

Haz clic en el botón Export a la derecha de Mesh para exportar el modelo denso.

Modificar las opciones de exportación

Presta atención a modificar las opciones de exportación al exportar.

En la imagen, 1 es el nivel de LOD. Cuanto más bajo es el nivel, más simple es el modelo y menos polígonos tiene. Si se necesita la máxima precisión, selecciona el nivel más alto.

En la imagen, 2 es la opción para exportar texturas. Aquí solo se necesita el modelo blanco para oclusión, no se necesitan texturas.

Recortar y reducir polígonos del modelo

Recorta y reduce los polígonos del modelo exportado en un software de creación de contenido digital (por ejemplo, Blender) y guárdalo como Glb.

Consejo

En el ejemplo se usa el Decimate Modifier de Blender.

Antes del recorte

Después de recortar y reducir polígonos:

Después del recorte

Importar el modelo de oclusión a Unity y adjuntarlo bajo el nodo Block en la escena

Importar modelo de oclusión

Modificar el Transform del modelo

Modifica el Transform del modelo para que Position y Rotation sean todos 0.

En este punto, el modelo blanco de oclusión debe ajustarse al modelo denso. Esto se debe a que al realizar operaciones de recorte y reducción de polígonos en el software de creación de contenido digital, no se cambió la definición del sistema de coordenadas del Bloque.

Modelo de oclusión ajustado

Asignar material de oclusión al modelo

Cambia el material del modelo a un material de oclusión. Se puede usar el SpatialMappingOcculusion incluido en Unity.

Cambiar material del modelo de oclusión

Simular la ejecución con datos EIF o ejecutar en un dispositivo real

Usa datos EIF para simular la ejecución o ejecuta en un dispositivo real para ver el efecto.

Expectativas del efecto de oclusión

El efecto de oclusión está principalmente influenciado por los siguientes puntos:

  • La precisión inherente del seguimiento de posicionamiento.
  • La precisión de la colocación del modelo.
  • La precisión del modelo en sí (si no es una geometría simple).

Es normal que ocurra un desalineamiento de unos pocos centímetros cuando hay deriva en el posicionamiento.

Los modelos de oclusión con demasiados polígonos pueden afectar el rendimiento. Se recomienda usarlos solo en áreas necesarias y, en la medida de lo posible, utilizar geometrías simples para la oclusión.

Temas relacionados