Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Resumen
HoloLens crea constantemente una representación interna del entorno físico, denominado modo de seguimiento "Dispositivo compartido", para mantener la estabilidad del holograma y las posiciones entre sesiones. Sin embargo, los cambios en el entorno pueden provocar imprecisiones en el seguimiento a lo largo del tiempo, lo que es problemático para las aplicaciones con requisitos de alta precisión. Para solucionar este problema, se ha introducido un nuevo modo de seguimiento "Exclusivo de la aplicación" con un conjunto de API de administración.
El modo "App-Exclusive" permite que las aplicaciones se ejecuten en un entorno nuevo, sin degradación de la precisión del seguimiento. El modo emite un "token de sesión exclusivo de la aplicación" para reanudar el mapa específico de la aplicación en sesiones futuras.
Notas:
Dos limitaciones del modo "Exclusivo de la aplicación" son que solo puede existir un modo de este tipo a la vez, borrar los datos anteriores y el almacenamiento en disco está limitado a un tercio del modo "Dispositivo compartido". Sin embargo, el límite más pequeño sigue siendo suficiente para la mayoría de las aplicaciones.
El escenario de destino para el modo "Exclusivo de la aplicación" es aplicaciones con requisitos de alta precisión y flujos de trabajo orientados a tareas. Entre los ejemplos se incluyen la alineación precisa del holograma con objetos reales y la edición del modelo 3D sin necesidad de persistencia.
Para usar las nuevas API de modo de seguimiento, se requiere una actualización del sistema operativo HoloLens de otoño de 2023. Las versiones anteriores no admiten el modo "App-Exclusive".
Información previa
Como se usa HoloLens, constantemente se crea una representación interna del entorno físico alrededor del dispositivo. Esto le permite mantener correctamente los hologramas estables en sus posiciones 3D y reubicarlos cuando el dispositivo se usa en la misma ubicación física en varias sesiones. Esta representación se comparte en todas las aplicaciones de un dispositivo HoloLens determinado y se denomina correctamente el modo de seguimiento "Dispositivo compartido".
La representación interna de un entorno puede degradarse con el tiempo, debido a diversos factores, como pequeños cambios en el entorno (como una silla que se mueve a una nueva ubicación) o cambios de iluminación. Estos cambios pueden introducir imprecisiones en el seguimiento de HoloLens, lo que podría dar lugar a que algunos hologramas se desfasen de su ubicación original por pequeñas cantidades. Este movimiento suele ser insignificante para muchas aplicaciones. Sin embargo, para las aplicaciones que tienen requisitos de alta precisión, la degradación con el tiempo es problemática. Anteriormente, la solución alternativa más común era que las aplicaciones aconsejen a sus usuarios que usen la pestaña "Hologramas" de la aplicación Configuración para "Quitar todos los hologramas", que borra todos los datos de entorno guardados. Este acto se restablecería a un entorno nuevo, a costa de borrar todos los hologramas creados anteriormente.
API de administración de Tracking-Map
Para aliviar algunos de los problemas que se producen a medida que el mapa de seguimiento "Dispositivo compartido" evoluciona con el tiempo, se ha agregado compatibilidad para que una aplicación administre su entorno a un nivel más granular. Sin embargo, esta nueva funcionalidad incluye sus propios inconvenientes que deben administrarse cuidadosamente, en función de los requisitos de una aplicación.
Modo de seguimiento "Exclusivo de la aplicación"
Un nuevo conjunto de API permite que una aplicación opte por ejecutarse en un modo de seguimiento "Exclusivo de la aplicación" (en lugar del valor predeterminado "Dispositivo compartido"). Esta operación crea un entorno nuevo para que la aplicación la use durante la sesión actual, sin incurrir en errores de seguimiento de espacio de dispositivo como resultado de la degradación a lo largo del tiempo. Cambiar a este modo equivale a usar el comando "Quitar todos los hologramas" de Configuración, pero solo es aplicable a la aplicación en ejecución. Los hologramas para todas las demás aplicaciones (incluido el Shell de HoloLens) permanecen intactos y disponibles como antes. Al volver al Shell o activar otra aplicación, HoloLens devuelve automáticamente el modo de seguimiento "Dispositivo compartido".
Además, el modo de seguimiento "App-Exclusive" permite a la aplicación que realiza la llamada solicitar fidelidad de seguimiento de "Alta precisión". Este nuevo modo solicita que el rastreador intente realizar un seguimiento más preciso, a costa de usar más energía de batería y almacenamiento en disco. Este nuevo modo es más adecuado para escenarios de aplicación que tienen lugar en áreas de tamaño de sala con requisitos de alta precisión, como la alineación de hologramas con objetos reales.
Al entrar por primera vez en el modo de seguimiento "App-Exclusive", la aplicación que realiza la llamada emite un token de sesión "exclusivo de la aplicación". Este token se puede usar para reanudar el seguimiento del mapa específico de la aplicación en sesiones futuras de la aplicación, como si el usuario se aleja de la aplicación y finaliza en segundo plano debido a restricciones de recursos del sistema. Sin embargo, si el dispositivo simplemente entra en suspensión o el usuario interactúa brevemente con shell, la aplicación se reanuda automáticamente en el modo de seguimiento "Exclusivo de la aplicación" una vez que se vuelve a activar (y todo el estado de la aplicación permanece disponible).
Hay dos limitaciones que se deben tener en cuenta al usar el modo de seguimiento "App-Exclusive":
Solo puede existir un único mapa de seguimiento "App-Exclusive" en HoloLens a la vez. Si una aplicación solicita un nuevo modo de seguimiento "Exclusivo de la aplicación", se borrarán todos los datos de seguimiento "Exclusivos de la aplicación" anteriores y se perderán todos los objetos SpatialAnchor (y hologramas adjuntos), incluso si los datos se crearan mediante una aplicación diferente mediante su propio modo de seguimiento "Exclusivo de la aplicación". Por lo tanto, si se intenta volver a una sesión anterior "App-Exclusive", al especificar un "Token de sesión exclusivo de la aplicación" podría dar lugar a un valor devuelto que indica que no se encontró la sesión anterior. Las aplicaciones deben estar preparadas para controlar el escenario en el que un mapa de seguimiento "Exclusivo de la aplicación" anterior no está disponible.
El almacenamiento en disco disponible para el modo de seguimiento de App-Exclusive está limitado a un tercio de lo que está disponible para el modo de seguimiento "Dispositivo compartido", aunque es poco probable que esta limitación sea un problema para la mayoría de los usuarios. Cuando se alcanza este límite, HoloLens comienza a borrar sus datos de seguimiento menos valiosos, lo que finalmente da como resultado una precisión de seguimiento más deficiente. El límite más pequeño sigue siendo lo suficientemente grande como para mantener una buena precisión para entornos de tamaño interno y es poco probable que sea un problema para la mayoría de los escenarios de aplicación.
Dadas estas limitaciones, el escenario de destino para el modo de seguimiento "Exclusivo de la aplicación" es para las aplicaciones con requisitos de alta precisión orientados a tareas, donde el usuario podría interrumpir una tarea devolviendo el Shell de HoloLens o el dispositivo que va a dormir. Sin embargo, una vez completada la tarea del usuario, no es necesario guardar nada sobre la tarea (con respecto al entorno 3D), por lo que se puede borrar.
Ejemplos:
- Alineación de alta precisión de hologramas a un objeto real, usando códigos QR para arrancar el escenario.
- Editar un modelo 3D con requisitos de alta precisión cuando no es necesario que se produzca ninguna persistencia espacial 3D del modelo después de que finalice la sesión.
- El seguimiento en lugares que tienen una gran cantidad de renovación ambiental (como las personas que se mueven), lo que a veces da como resultado una calidad de seguimiento más pobre que entornos más estáticos.
API de App-Exclusive
las API de administración de Tracking-Map están disponibles en Microsoft.MixedReality.OpenXR.TrackingMapManager
Preguntas más frecuentes sobre App-Exclusive
¿Cuándo debe llamar una aplicación EnterNewAppExclusiveTrackingSession()?
- Para surtir efecto, una aplicación que solicita entrar en el modo de seguimiento "App-Exclusive" debe ser la aplicación 3D envolvente activa. Por lo tanto, estas API solo deben usarse una vez que la aplicación haya empezado a representar su interfaz de usuario 3D (y no, por ejemplo, cuando se ejecute la aplicación por primera vez).
¿Necesita una aplicación llamar a LeaveAppExclusiveTrackingSession()?
- Una aplicación solo tiene que dejar el modo de seguimiento "Exclusivo de la aplicación" si desea realizar acciones en el modo de seguimiento "Dispositivo compartido", como conservar un SpatialAnchor para la recuperación en una sesión independiente. Cuando el foco se cambia a otra aplicación (como el Shell de HoloLens), HoloLens cambia automáticamente al modo de seguimiento adecuado. Si el usuario vuelve a la aplicación, HoloLens vuelve automáticamente al modo de seguimiento "App-Exclusive", según corresponda. Sin embargo, si el sistema operativo finalizó completamente el proceso de la aplicación (debido a restricciones de recursos), la aplicación se reinicia en modo de seguimiento "Dispositivo compartido" y la aplicación tendría que detectarlo (a través de la API CurrentTrackingMapType) y volver a escribir el modo de seguimiento deseado.
¿Se puede acceder a los datos de entorno de una aplicación creados en el seguimiento "Exclusivo de la aplicación" por otras aplicaciones o si es privado para la aplicación?
- En el modo de seguimiento "Dispositivo compartido", todos los datos del entorno se comparten entre aplicaciones. Sin embargo, en el modo de seguimiento "App-Exclusive", los datos de entorno y hologramas creados anteriormente solo están disponibles para una aplicación que ha reanudado el modo de seguimiento "App-Exclusive" mediante un token de sesión de App-Exclusive (que se emitió anteriormente a la aplicación cuando solicitó originalmente el modo de seguimiento "App-Exclusive"). Esto significa que, a menos que una aplicación diferente tenga el token de sesión de App-Exclusive, no podrá reanudar el seguimiento "App-Exclusive" con los mismos datos de entorno y hologramas que la aplicación anterior. De hecho, siempre y cuando una aplicación no comparta su token de sesión de App-Exclusive, los datos se silorían de todas las demás aplicaciones del dispositivo.
¿Qué versión de HoloLens es necesaria para usar las nuevas API de modo de seguimiento?
- Se requiere una actualización del sistema operativo para usar las nuevas API de administración de mapas de seguimiento. Una aplicación debe usar la enumeración de marcas "SupportedTrackingMapTypes" para confirmar la compatibilidad con el modo de seguimiento deseado antes de usar esas API.
- El modo de seguimiento "App-Exclusive" se introdujo en la actualización del sistema operativo HoloLens de otoño de 2023. En esta versión y versiones posteriores, la enumeración de marcas "SupportedTrackingMapTypes" incluye el valor "AppExclusive". Las versiones anteriores no incluyen este valor y las llamadas a ninguna API de modo de seguimiento "Exclusivo de la aplicación" inician una excepción.
- En cualquier versión del sistema operativo HoloLens anterior a octubre de 2023, "SupportedTrackingMapTypes" solo notifica "DeviceShared" y no se puede usar ninguna otra API de administración.
¿Hay consideraciones especiales al crear aplicaciones con Unity?
Las aplicaciones suelen establecer un espacio de coordenadas del mundo raíz para conectar las vistas, las acciones y los hologramas juntos. Las aplicaciones deben usar un espacio de referencia sin enlazar para establecer un sistema de coordenadas a escala mundial. Esto evitará el seguimiento limitado o perdido y el desfase de hologramas no deseados cuando el usuario se mueve lejos (por ejemplo, 5 metros de distancia) desde donde se inicia la aplicación o cuando la aplicación se desplaza entre mapas espaciales.
Para habilitar el espacio de referencia sin enlazar en aplicaciones de Unity, si no usa MRTK3, agregue el componente EyeLevelSceneOrigin al origen XR de la escena. De forma predeterminada, la plataforma predeterminada de MRTK3 ya habilita el espacio de referencia sin enlazar en HoloLens 2. Si usa MRTK3 y no usa la plataforma predeterminada, agregue el componente UnboundedTrackingMode al origen XR de la escena.