Delimitadores espaciales

Un delimitador espacial representa un punto importante en el mundo que el sistema realiza un seguimiento a lo largo del tiempo. Cada delimitador tiene un sistema de coordenadas ajustable, basado en otros anclajes o marcos de referencia, para garantizar que los hologramas anclados permanezcan exactamente en su lugar. La representación de un holograma en el sistema de coordenadas de un delimitador proporciona el posicionamiento más preciso para ese holograma en un momento dado. Esto se produce a costa de pequeños ajustes a lo largo del tiempo a la posición del holograma, ya que el sistema lo mueve continuamente a su lugar en función del mundo real.

También puede conservar y compartir anclajes espaciales entre sesiones de aplicación y entre dispositivos:

  • Al guardar los anclajes espaciales locales en el disco y volver a cargarlos más adelante, la aplicación puede calcular la misma ubicación en el mundo real en varias sesiones de aplicación en un solo HoloLens.
  • Con Azure Spatial Anchors para crear un delimitador en la nube, la aplicación puede compartir un delimitador espacial en varios dispositivos HoloLens, iOS y Android. Al hacer que cada dispositivo represente un holograma con el mismo delimitador espacial, los usuarios verán que el holograma aparece en el mismo lugar del mundo real. Esto permite compartir experiencias en tiempo real.
  • También puede usar Azure Spatial Anchors para la persistencia asincrónica de hologramas en dispositivos HoloLens, iOS y Android. Al compartir un delimitador espacial duradero en la nube, varios dispositivos pueden observar el mismo holograma persistente a lo largo del tiempo, incluso si esos dispositivos no están presentes juntos al mismo tiempo.

En el caso de las experiencias de escala permanente o de escala de habitación para cascos de escritorio anclados que permanecerán dentro de un diámetro de 5 metros, normalmente puede usar el marco de referencia de fase en lugar de anclajes espaciales, que proporciona un único sistema de coordenadas en el que representar todo el contenido. Sin embargo, si la aplicación permite a los usuarios ir más allá de 5 metros en HoloLens, quizás operar a lo largo de todo un piso de un edificio, necesitará anclajes espaciales para mantener el contenido estable.

Aunque los delimitadores espaciales son estupendos para los hologramas que deben permanecer fijos en el mundo, una vez colocados, no se pueden mover. Hay alternativas a los anclajes que son más adecuados para los hologramas dinámicos que etiquetan junto con el usuario. Es mejor colocar hologramas dinámicos mediante un marco estático de referencia (la base para las coordenadas del mundo de Unity) o un marco de referencia adjunto.

Procedimientos recomendados

Estas directrices de delimitación espacial te ayudarán a representar hologramas estables que realizan un seguimiento preciso del mundo real.

Crear delimitadores espaciales donde los usuarios los colocan

Normalmente, los usuarios son los que colocan explícitamente los anclajes espaciales.

Por ejemplo, en HoloLens, una aplicación puede intersecr el rayo de mirada del usuario con la malla de asignación espacial para permitir al usuario decidir dónde colocar un holograma. Cuando el usuario pulsa para colocar ese holograma, cree un delimitador espacial en el punto de intersección y, a continuación, coloque el holograma en el origen del sistema de coordenadas de ese delimitador.

Los anclajes espaciales locales son fáciles y eficaces de crear. El sistema combina datos internos si varios delimitadores pueden compartir sus datos de sensor subyacentes. Se recomienda crear un nuevo delimitador espacial local para cada holograma que un usuario coloque explícitamente, excepto en los casos descritos a continuación, como grupos rígidos de hologramas.

Procesar siempre hologramas delimitados en un radio de 3 metros a partir del delimitador

Los delimitadores espaciales estabilizan su sistema de coordenadas cerca del origen del delimitador. Si representa hologramas de más de 3 metros del origen, los hologramas pueden experimentar errores posicionales notables en proporción a su distancia desde ese origen debido a los efectos del brazo de palanca. Esto funciona si el usuario está cerca del delimitador, ya que el holograma también está lejos del usuario. En otras palabras, el error angular del holograma lejano será pequeño. Sin embargo, si el usuario camina hasta ese holograma lejano, será grande en su vista, lo que hará que los efectos del brazo de la palanca del origen del anclaje lejano sean obvios.

Agrupar los hologramas que deban formar un clúster rígido

Varios hologramas pueden compartir el mismo delimitador espacial si la aplicación espera que esos hologramas mantengan relaciones fijas entre sí.

Por ejemplo, si animas un sistema solar holográfico en una sala, es mejor vincular todos los objetos del sistema solar a un único delimitador en el centro. De este modo, se moverán sin problemas en función del uno del otro. En este caso, es el sistema solar en su conjunto anclado, aunque sus partes componentes se mueven dinámicamente alrededor del delimitador.

La advertencia clave para mantener la estabilidad del holograma es seguir la regla de 3 metros anterior.

Representar hologramas muy dinámicos mediante el marco estático de referencia en lugar de usar un delimitador espacial local

Si tienes un holograma muy dinámico, como un carácter que camina por una sala o una interfaz de usuario flotante que sigue a lo largo de la pared cerca del usuario, es mejor omitir los anclajes espaciales locales y representar esos hologramas directamente en el sistema de coordenadas proporcionado por el marco fijo de referencia. En Unity, esto se logra colocando hologramas directamente en coordenadas del mundo sin worldAnchor. Los hologramas de un marco estático de referencia pueden experimentar desfase cuando el usuario está lejos del holograma. Pero es menos probable que esto sea notable para los hologramas dinámicos: el holograma se mueve constantemente de todos modos o su movimiento lo mantiene constantemente cerca del usuario donde se minimizará el desfase.

Un caso interesante de hologramas dinámicos es un objeto animado desde un sistema de coordenadas delimitado a otro. Por ejemplo, puede tener dos castillos a 10 metros de distancia, cada uno en su propio anclaje espacial con un castillo disparando una bala de cañón en el otro castillo. Cuando se dispara el cañón, se puede representar en la ubicación adecuada en el marco estacionario de referencia para coincidir con el cañón en el sistema de coordenadas anclado del primer castillo. Después, seguirá su trayectoria de 10 metros por el aire en el marco estático de referencia. A medida que el cañón llega al otro castillo, puedes moverlo al sistema de coordenadas anclado del segundo castillo para permitir cálculos físicos con los cuerpos rígidos de ese castillo.

Si va a compartir un holograma muy dinámico entre dispositivos, elija algún delimitador espacial en la nube para que actúe como elemento primario porque los fotogramas fijos de referencia no se pueden compartir entre dispositivos. Sin embargo, debes asegurarte de que el holograma dinámico o los dispositivos que lo ven permanecen dentro del radio de 3 metros del delimitador para que el holograma aparezca estable en todos los dispositivos.

Evitar la creación de una cuadrícula de delimitadores espaciales

Es posible que tenga la tentación de que la aplicación quite una cuadrícula normal de anclajes espaciales a medida que el usuario camina, realizando la transición de objetos dinámicos del delimitador al delimitador a medida que se mueven. Sin embargo, esto implica más administración para la aplicación, sin la ventaja de los datos profundos del sensor que el propio sistema mantiene internamente. En estos casos, obtendrá mejores resultados colocando los hologramas en el marco estático de referencia, tal como se describe en la sección anterior. Cuando se coloca previamente un conjunto de anclajes espaciales en la nube alrededor de un espacio estático, considere la posibilidad de colocar los anclajes espaciales en las ubicaciones de los hologramas clave que el usuario se encuentra según el principio anterior en lugar de crear una cuadrícula arbitraria de anclajes. Esto garantiza la máxima estabilidad de esos hologramas clave.

Liberar los delimitadores espaciales locales que ya no se necesitan

Mientras un delimitador espacial local está activo, el sistema da prioridad a mantener los datos del sensor que están cerca de ese delimitador. Si ya no usa un delimitador espacial, deje de acceder a su sistema de coordenadas. Esto permite quitar los datos subyacentes del sensor según sea necesario.

Esto es especialmente importante para los delimitadores locales que ha conservado en el almacén de anclajes espaciales. Los datos del sensor detrás de estos anclajes se mantendrán permanentemente para permitir que la aplicación encuentre ese delimitador en sesiones futuras, lo que reduce el espacio disponible para realizar el seguimiento de otros delimitadores. Solo conserva los delimitadores locales que necesita encontrar de nuevo en futuras sesiones. Se recomienda quitarlos del almacén cuando ya no sean significativos para el usuario.

Para los delimitadores espaciales en la nube, el almacenamiento puede escalar según las necesidades del escenario. Puede almacenar tantos anclajes en la nube como necesite, liberarlos cuando sepa que los usuarios no necesitarán el delimitador de nuevo.

Consulte también