Extensão OpenXR XR_ANDROID_mouse_interaction

String de nome

XR_ANDROID_mouse_interaction

Tipo de extensão

Extensão de instância

Número de extensão registrado

705

Revisão

1

Dependências de extensão e versão

OpenXR 1.0

Data da última modificação

2024-09-06

Status do IP

Nenhuma reivindicação de IP conhecida.

Colaboradores

Sharayu Shenoy, Google

Chiara Coetzee, Google

Levana Chen, Google

Spencer Quin, Google

Visão geral

Essa extensão fornece um XrPath para receber a entrada do mouse e define uma ação comumente usada para perfis de mouse do usuário, incluindo dispositivos de mouse e trackpad.

Essa extensão também apresenta um novo perfil de interação projetado especificamente para dispositivos de mouse para entrada pelo sistema de ação do OpenXR.

Pose de ação para interações com o mouse

A pose de ação a seguir (ou seja, "mirar") ativa um raio de ponteiro 3D, seja por entradas de rastreamento fornecidas por um dispositivo de mouse ou um dispositivo de trackpad.

O subcaminho de ação …/input/aim/pose será compatível com todos perfis de interação válidos para o caminho do usuário /user/mouse, incluindo os perfis de interação ativados por extensões.

Posição de mira

O …/input/aim/pose foi projetado para interagir com objetos usando um ponteiro do mouse no espaço 3D. Por exemplo, usar um ponteiro laser virtual para apontar para um botão virtual na parede é uma interação adequada para a pose "mirar".

Essa é a mesma pose "aim" definida nos Identificadores de pose padrão. Todos os perfis de controle rastreados já oferecem suporte a essa pose.

Exemplo de pose de mira

Posição

A posição da pose de "mira" geralmente é a cabeça do usuário, ou seja, a mesma posição da cabeça quando um movimento do mouse é detectado. A pose de mira do mouse é calculada quando há um movimento do mouse. A última posição de mira conhecida será mantida até o próximo movimento do mouse.

Orientação

A orientação da pose "mira" pode ser usada para renderizar um raio de ponteiro 3D para interagir com um objeto virtual, por exemplo, clicando em um botão de menu na parede.

A pose de mira do mouse é calculada quando há um movimento do mouse. A última orientação de mira conhecida será mantida até o próximo movimento do mouse.

A direção -Z é a direção para a frente do gesto de mira, ou seja, para onde o raio de mira está apontando.

O movimento relativo X,Y do mouse é usado para calcular o movimento relativo do mouse em uma esfera ao redor da cabeça do usuário.

Exemplo de pose de mira

O movimento de profundidade será compatível com o clique principal e a rolagem. Quando uma ação de movimento em profundidade está em andamento, a posição é deslocada da posição da cabeça na direção Z positiva ou negativa ao longo do raio, dependendo do valor de rolagem positivo ou negativo. O sistema vai estabilizar o movimento de profundidade dentro da esfera ao redor da cabeça do usuário.

O perfil de interação para dispositivos com mouse

O perfil de interação com o mouse foi projetado para ambientes de execução que fornecem entradas de mouse usando dispositivos de mouse ou dispositivos de trackpad com botões e rolagem. Isso permite que dispositivos de mouse e trackpad forneçam cliques, rolagem e pose de ação usados com frequência ao sistema de ação do OpenXR.

Caminho do perfil de interação:

  • /interaction_profiles/android/mouse_interaction

Válido para o caminho do usuário de nível superior:

  • /user/mouse

Caminhos de componentes compatíveis:

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

Esse perfil de interação oferece suporte à ação de pose descrita nesta seção, bem como aos dois grupos de entradas de ação a seguir.

Ação de clique

Esse perfil de interação oferece suporte a ações …/input/select/click, …/input/secondary/click e /input/tertiary/click.

O …/input/select/click é uma entrada booleana, em que o valor XR_TRUE indica que o botão principal do mouse ou trackpad está pressionado.

O …/input/secondary/click é uma entrada booleana, em que o valor XR_TRUE indica que o botão secundário do mouse ou do trackpad está pressionado.

O …/input/tertiary/click é uma entrada booleana, em que o valor XR_TRUE indica que o scroll do mouse ou o botão terciário está pressionado.

Ação de rolagem

Esse perfil de interação oferece suporte a ações …/input/scroll/value.

O …/input/scroll/value é um componente de entrada 2D que varia de -1 a 1 para mapear o rolagem para baixo e para cima.

Novos tipos de objeto

Novos tipos de flags

Novas constantes de tipo enumerado

Novos tipos enumerados

Novas estruturas

Novas funções

Problemas

Histórico de versões

  • Revisão 1, 29-08-2024 (Levana Chen)
    • Descrição inicial da extensão