Table of Contents

Diagnóstico y reparación: Problema de contenido que no se muestra en la aplicación

“Puedo ver el mundo real, pero el contenido virtual no aparece.” Este es uno de los problemas más comunes en el desarrollo de AR. Puede originarse en múltiples etapas, desde el propio posicionamiento de Mega hasta su lógica de renderizado.

Esta guía le ayudará a diagnosticar y resolver este problema de manera sistemática.

Flujo de diagnóstico: De externo a interno

Siguiendo el principio de "primero lo externo, luego lo interno", puede localizar el problema de manera eficiente. Siga estos pasos en orden:

Paso uno: Verificar el estado del posicionamiento de mega con herramientas externas (sin modificar el código)

Antes de profundizar en el código de su aplicación, confirme primero si el servicio de posicionamiento de Mega en sí está funcionando correctamente. Este es el paso más crítico, ya que puede ayudarle a determinar si el problema está en el propio posicionamiento de Mega o en la integración del desarrollo de la aplicación, como el renderizado.

  1. Usar la mega toolbox (en el teléfono)

    • Instale la aplicación mega toolbox en su teléfono de prueba (si aún no lo ha hecho).
    • Abra la aplicación y vaya a Herramientas de validación y diagnóstico en el sitio.
    • Inicie sesión en su cuenta y seleccione la misma biblioteca de posicionamiento que su aplicación.
    • Lleve el teléfono a la misma ubicación donde su aplicación no muestra el contenido durante las pruebas.
    • Observe el resultado:
      • Si la toolbox se posiciona con éxito (el estado en la interfaz muestra Found): ¡Enhorabuena! El servicio de posicionamiento de Mega funciona correctamente. El problema está dentro de su aplicación, específicamente en la lógica de renderizado y visualización de contenido. Pase al paso dos.
      • Si la toolbox falla al posicionarse (el estado en la interfaz muestra NotFound u otro): El problema está en el servicio de posicionamiento en sí. Consulte la siguiente sección para un análisis más profundo.
  2. Usar la simulación de ejecución en pc (si se ha capturado eif)

    • Si ha grabado datos eif para esta escena, puede reproducirlos en el editor de unity en pc utilizando la herramienta de validación de sesión.
    • Observe el resultado:
      • Si el posicionamiento tiene éxito durante la reproducción (el estado en la interfaz muestra Found): El problema está en su código de aplicación o en el entorno específico del dispositivo.
      • Si el posicionamiento falla durante la reproducción (el estado en la interfaz muestra NotFound u otro): El problema está en el servicio de posicionamiento en sí. Consulte la siguiente sección para un análisis más profundo.

Paso dos: Verificar la lógica de renderizado y contenido dentro de la aplicación

Si el paso uno confirma que el servicio de posicionamiento de Mega en sí funciona correctamente, entonces el problema está en el código de su aplicación. Verifique los siguientes puntos:

  1. ¿El contenido está colocado bajo el nodo correcto?:

    • ¿Ha colocado correctamente los objetos 3D bajo los nodos MegaBlocks > Block_* generados automáticamente por la herramienta?
    • Verifique la jerarquía entre el contenido y los nodos block para asegurarse de que la posición de renderizado del contenido virtual sea correcta durante el tiempo de ejecución.
  2. ¿Está configurada correctamente la raíz del bloque en megatracker?:

    • Expanda AR Session y verifique que Block Root en Mega Tracker sea el nodo MegaBlocks generado por la herramienta.
  3. ¿Se ha modificado el nodo megablocks?:

    • Asegúrese de no haber cambiado los nombres de los nodos Block_* y de no haber modificado ningún valor en las propiedades de local transform.
  4. ¿La escucha de eventos es correcta?:

    • ¿Ha modificado la lógica de manejo de devoluciones de llamada de posicionamiento de MegaTracker?
    • ¿Su código ejecuta la operación de instanciar o mostrar contenido virtual solo después de que se active el evento de estado de posicionamiento exitoso?
  5. Renderizado del visor y transparencia:

    • ¿Su objeto virtual está siendo bloqueado por otros objetos? Verifique la cola de renderizado y el shader.
    • Si utiliza un dispositivo vst (video see-through), verifique que su renderizado se superponga correctamente sobre el flujo de video.
    • Si utiliza un dispositivo ost (optical see-through), verifique si el contenido es difícil de ver debido a una luz ambiental excesivamente fuerte.
  6. Problemas con el contenido en sí:

    • ¿El prefabricado (prefab) que instancia tiene algún problema? Por ejemplo, archivos de modelo faltantes, errores de shader, escala en 0, etc. Intente colocar manualmente un objeto idéntico en la escena para ver si se muestra correctamente.

Análisis de causas comunes de fallo de posicionamiento y sugerencias de mejora

Si en el paso uno descubre que la mega toolbox tampoco puede posicionarse, entonces es necesario examinar y resolver el problema de posicionamiento cuidadosamente. A continuación se presentan las causas comunes y sus contramedidas:

  • Causa uno: El mapa no coincide con el entorno
    El entorno físico ha cambiado significativamente en comparación con cuando se capturó y mapeó, o el área de experiencia no estaba cubierta durante la captura, o el mapa en sí es incorrecto.
    Sugerencias de mejora:

    • Asegúrese de que el mapa cargado en su biblioteca de posicionamiento coincida con el espacio físico actual en términos de escena.
    • Si el entorno ha sido remodelado (por ejemplo, renovación, cambio de exhibición), es necesario volver a capturar y generar el mapa.
    • Si el área problemática no estaba cubierta durante la captura y mapeo inicial, es necesario regenerar el mapa mediante actualizaciones complementarias.
  • Causa dos: Entorno de inicialización deficiente
    Iniciar la aplicación en un área con poca textura (por ejemplo, paredes de color liso, apuntando al suelo).
    Sugerencias de mejora:

    • Guíe a los usuarios a iniciar la aplicación en áreas ricas en texturas para ayudar al sistema a completar el posicionamiento inicial rápidamente.
    • Proporcione indicaciones claras en la interfaz de usuario de la aplicación, como "levante el teléfono y mire a su alrededor".
  • Causa tres: Problemas de red o del servicio
    La latencia de la red provoca que las solicitudes al servicio de posicionamiento excedan el tiempo de espera, o el servicio de posicionamiento en sí tiene una falla, o se ha excedido el límite de uso concurrente, etc. Para este último caso, por favor, comuníquenoslo a tiempo.

  • Causa cuatro: Llegar al límite de capacidad del algoritmo
    El posicionamiento de mega se basa en algoritmos avanzados de visión por computadora, ia, etc., pero no es omnipotente y tiene ciertos límites de capacidad algorítmica. Cuando ocurren fallos de posicionamiento continuos en ciertas escenas o puntos, puede proporcionarnos comentarios mediante grabaciones de pantalla, grabaciones de datos eif, etc., para ayudarnos a mejorar y actualizar continuamente el algoritmo.

Además, es importante señalar que el posicionamiento de mega requiere un proceso, generalmente de 1 a 2 segundos. Teniendo en cuenta la complejidad de los escenarios reales, como congestión de la red, alta concurrencia, sobrecalentamiento y reducción de frecuencia del teléfono, este tiempo puede ser mayor. Por lo tanto, en la aplicación se puede diseñar una interfaz de carga/espera clara para informar al usuario "posicionando...", evitando que el usuario piense erróneamente que el servicio está caído o que no puede posicionarse debido a la espera.

Nota
  • El posicionamiento inicial suele ser más lento que los posteriores, porque el sistema necesita cargar el contenido correspondiente después del primer posicionamiento exitoso. Esto es normal.
  • Mover el dispositivo rápidamente puede provocar la pérdida del posicionamiento. Guíe a los usuarios para que muevan el dispositivo con suavidad.

Resumen y mejores prácticas

  • Siempre verifique primero con herramientas externas: Esto reduce el alcance del problema más rápidamente a "posicionamiento" o "renderizado".
  • Establezca expectativas razonables para el usuario: A través de indicaciones en la interfaz de usuario, informe al usuario de que el posicionamiento requiere tiempo y guíelo hacia un entorno adecuado.
  • Preste atención a la lógica del contenido: Asegúrese de que la configura