Compartir a través de


La idea básica

Los sistemas de seguimiento de la cabeza de interacción directa son una tecnología nueva increíble. Al observar sus puntos fuertes vemos que son casi mágicos. Sin embargo, también tienen puntos débiles.

Los sistemas de seguimiento de la cabeza de interacción directa, como los de HoloLens, son óptimos a la hora de indicar dónde está la cabeza en relación con las características físicas cercanas. También son buenos para saber dónde se encuentran las características del mundo real en relación con la cabeza.

No obstante, no son tan buenos para indicar dónde se encuentra la cabeza con respecto a donde estaba anteriormente. Cuando la cabeza se mueve del punto A al punto B, el sistema de seguimiento no suele ser del todo preciso respecto a la longitud del tramo recorrido por esta. Esto significa que el sistema de seguimiento no indicará correctamente la distancia entre los puntos A y B. Este efecto se suele denominar "el problema de escala".

Después, cuando la cabeza se desplaza de nuevo del punto B al punto A, este volverá a indicar de forma incorrecta la distancia recorrida. Estará muy próximo a la corrección, pero será inexacto de forma perceptible. Este efecto también se conoce como "desfase".

Estos problemas se explican con más detalle en estas preguntas frecuentes.

La cuestión es que las herramientas World Locking Tools pueden corregir estos problemas. En el último caso, el del desfase, World Locking Tools puede reconocer que la cabeza vuelve a estar cerca del punto A (a partir de las características físicas alrededor de dicho punto) y corregir las coordenadas de esta.

En el primer caso, el del problema de escala, World Locking Tools puede tomar datos de la aplicación para saber dónde se encuentra el punto B en relación con el punto A y corregir también la distancia recorrida.

Para comprender mejor cómo resuelven estos problemas las herramientas World Locking Tools, nos pueden resultar útiles algunos términos adicionales.

Espacios elásticos y bloqueados en el mundo

Espacio elástico

Como núcleo de World Locking Tools encontramos un motor de optimización. Este toma como entrada un gráfico de anclajes espaciales activos actualmente en el mundo, junto con la información de seguimiento de la cabeza actual. Esta entrada se conoce normalmente (en esta documentación y código y otros relacionados) como estado elástico. El estado elástico se llama así porque está constantemente en flujo. Los anclajes espaciales siempre están en movimiento entre sí y dentro de su espacio de coordenadas elástico nativo, a medida que los datos del sensor entrantes ajustan su estado.

Este espacio elástico es el único sistema de coordenadas previamente disponible en el que el desarrollador de aplicaciones de realidad mixta podía trabajar.

Espacio bloqueado en el mundo

A partir del estado elástico, el motor de World Locking Tools calcula un espacio estable, que alinea de forma óptima el espacio elástico con el mundo físico. Este espacio estable se conoce como espacio bloqueado en el mundo y su estado completo como el estado inmovilizado.

Es importante tener en cuenta que tanto el espacio elástico como el espacio bloqueado en el mundo son sistemas de coordenadas cartesianas rígidos y, de hecho, se diferencian entre sí solo por una rotación y un desplazamiento. Sin embargo, la transformación del espacio elástico en espacio bloqueado en el mundo cambia cada fotograma, a medida que se procesan los nuevos datos del sensor.

La diferencia entre ambos espacios es que, mientras que los datos del sensor entrantes pueden ajustar (es decir, mover) tanto los anclajes espaciales entre sí como la cabeza en un espacio elástico, el espacio bloqueado en el mundo se elige para minimizar dichos movimientos. Esta diferencia permite que los objetos de la escena colocados en un espacio bloqueado en el mundo aparezcan como fijos en el mundo físico sin estar conectados a anclajes espaciales individuales. En cada fotograma, el motor calcula el espacio bloqueado en el mundo en el que los anclajes subyacentes son más estables. Es decir, el espacio bloqueado en el mundo en el que los objetos virtuales permanecen alineados de forma óptima con las características del mundo real.

Esta transformación se aplica a cada fotograma de la escena mediante el ajuste de la transformación local de un elemento primario de la cámara en el gráfico de escenas. Dado que la cámara define el espacio elástico original, la inserción de esta transformación "de bloqueo en el mundo a elástico" en la jerarquía de la cámara establece el espacio raíz de la escena como espacio bloqueado en el mundo.

Persistencia

Opcionalmente, el estado inmovilizado puede conservarse entre sesiones. Hay controles manuales tanto para guardar el estado actual como para cargar a partir de un estado guardado. Además, las marcas del administrador de World Locking Tools habilitan o deshabilitan el guardado periódico automático del estado inmovilizado y la carga automática del último estado guardado al iniciar.

El uso de estas características permite examinar y estabilizar un espacio real para conservarlo durante varias sesiones.

Además, si se usa la característica de marcador espacial para alinear el espacio de modelado con el espacio real, esa alineación puede conservarse. En ese caso, después de una sesión de alineación inicial para configurar los marcadores espaciales a fin de alinear la escena modelada con un espacio físico, las sesiones posteriores pueden cargar de forma automática la escena modelada en el espacio físico con las características virtuales y reales alineadas.

Para obtener más información, vea Persistencia y la característica de marcador espacial.

Implicaciones del movimiento de la cámara

Un aspecto sutil pero importante que hay que tener en cuenta aquí es que, al aplicar la transformación de corrección a la cámara, el "fotograma de referencia inmóvil" nativo de Unity se ha convertido en el fotograma de referencia óptimo de bloqueo en el mundo. Puesto que no se ha movido ningún objeto de la escena, esta corrección no interferirá con la simulación física ni con otros cálculos dinámicos.

Sin embargo, la cámara que se mueve dentro del fotograma inmóvil de referencia tiene implicaciones. En concreto, todos los subsistemas, que asumen que la transformación de la cabeza es la única transformación entre el fotograma de referencia inmóvil y el espacio de la cámara, serán incorrectos.

Este error no suele ser un problema, ya que funcionalidades tales como el teletransporte ya dependen de la capacidad de realizar una transformación entre la cámara y el espacio raíz.

Además, MRTK ya considera la necesidad de estas transformaciones, por lo que para los usuarios de los servicios MRTK esto "simplemente funcionará".

Para los usuarios que requieren acceso directo a sistemas de nivel inferior que no pueden aprovechar MRTK, se proporcionan ejemplos para integrar adaptadores. A continuación, se enumeran algunos de estos ejemplos:

Consulte también