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
- Completar Inicio rápido con los ejemplos de Unity de EasyAR Mega.
- Ser capaz de crear contenido alineado con el mundo real.
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.

[Opcional] Ajustar la posición de las geometrías 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.

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.

Después de recortar y reducir polígonos:

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

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.

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.

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.


