Extensión XR_ANDROID_mouse_interaction de OpenXR

Cadena de nombre

XR_ANDROID_mouse_interaction

Tipo de extensión

Extensión de la instancia

Número de extensión registrado

705

Revisión

1

Dependencias de extensiones y versiones

OpenXR 1.0

Fecha de última modificación

2024-09-06

Estado de la IP

No hay reclamos de IP conocidos.

Colaboradores

Sharayu Shenoy, Google

Chiara Coetzee, Google

Levana Chen, Google

Spencer Quin, Google

Descripción general

Esta extensión proporciona un XrPath para obtener la entrada del mouse y define una posición de acción de uso general para los perfiles de mouse del usuario, incluidos los dispositivos de mouse y los dispositivos de panel táctil.

Esta extensión también presenta un nuevo perfil de interacción diseñado específicamente para que los dispositivos de mouse ingresen a través del sistema de acciones de OpenXR.

Pose de acción para interacciones con el mouse

La siguiente pose de acción (es decir, "apuntar") habilita un rayo de puntero 3D, ya sea que las entradas de seguimiento las proporcione un dispositivo de mouse o un dispositivo de panel táctil.

La subruta de acción …/input/aim/pose se admitirá en todos los perfiles de interacción que sean válidos para la ruta de acceso del usuario de /user/mouse, incluidos los perfiles de interacción habilitados a través de extensiones.

Posición de objetivo

…/input/aim/pose está diseñado para interactuar con objetos a través de un puntero del mouse en el espacio 3D. Por ejemplo, usar un puntero láser virtual para apuntar a un botón virtual en la pared es una interacción adecuada para la postura de "apuntar".

Esta es la misma postura de "apuntación" definida en Identificadores de posturas estándar. Cada perfil de controlador rastreado ya admite esta postura.

Ejemplo de pose de objetivo

Posición

La posición de la postura de "apuntación" suele ser la cabeza del usuario, es decir, la misma posición de la cabeza cuando se detecta un movimiento del mouse. La posición de objetivo del mouse se calcula cuando hay un movimiento del mouse. La última posición de puntero conocida se mantendrá hasta el próximo movimiento del mouse.

Orientación

La orientación de la pose de "apuntar" puede usarse para renderizar un rayo de puntero 3D para interactuar con un objeto virtual, por ejemplo, hacer clic en un botón de menú en la pared.

La posición de objetivo del mouse se calcula cuando hay un movimiento del mouse. La última orientación de objetivo conocida se mantendrá hasta el próximo movimiento del mouse.

La dirección -Z es la dirección hacia delante del gesto de apuntar, es decir, hacia donde apunta el rayo de puntería.

El movimiento relativo en X e Y del mouse se usa para calcular el movimiento relativo del mouse a lo largo de una esfera alrededor de la cabeza del usuario.

Ejemplo de pose de objetivo

El movimiento de profundidad se admitirá con el clic y el desplazamiento principales. Cuando se está realizando una acción para moverse en profundidad, la posición se compensa desde la posición de la cabeza en la dirección Z positiva o negativa a lo largo del rayo, según el valor de desplazamiento positivo o negativo. El sistema estabilizará el movimiento de profundidad dentro de la esfera alrededor de la cabeza del usuario.

El perfil de interacción para dispositivos de mouse

El perfil de interacción del mouse está diseñado para tiempos de ejecución que proporcionan entradas del mouse con dispositivos de mouse o panel táctil con botones y desplazamiento. Esto permite que los dispositivos de mouse y panel táctil proporcionen clics, desplazamiento y pose de acción de uso general al sistema de acciones de OpenXR.

Ruta del perfil de interacción:

  • /interaction_profiles/android/mouse_interaction

Es válida para la ruta de acceso del usuario de nivel superior:

  • /user/mouse

Rutas de componentes compatibles:

  • …/input/aim/pose
  • …/input/select/click
  • …/input/secondary/click
  • …/input/tertiary/click
  • …/input/scroll/value

Este perfil de interacción admite la postura de acción que se describe en esta sección, así como los siguientes dos grupos de entradas de acción.

Acción de clic

Este perfil de interacción admite las acciones …/input/select/click, …/input/secondary/click y /input/tertiary/click.

…/input/select/click es una entrada booleana, en la que el valor XR_TRUE indica que se presiona el botón principal del mouse o el panel táctil.

…/input/secondary/click es una entrada booleana, en la que el valor XR_TRUE indica que se presiona el botón secundario del mouse o el panel táctil.

…/input/tertiary/click es una entrada booleana, en la que el valor XR_TRUE indica que se presiona el botón terciario o se desplaza el mouse.

Acción de desplazamiento

Este perfil de interacción admite acciones …/input/scroll/value.

…/input/scroll/value es un componente de entrada 2D que varía de -1 a 1 para asignar el desplazamiento hacia abajo y hacia arriba.

Nuevos tipos de objetos

Nuevos tipos de marcas

Nuevas constantes de enum

Enumeraciones nuevas

Nuevas estructuras

Funciones nuevas

Problemas

Historial de versiones

  • Revisión 1, 29 de agosto de 2024 (Levana Chen)
    • Descripción inicial de la extensión