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
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.
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.
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