Estensione OpenXR XR_ANDROID_mouse_interaction

Stringa del nome

XR_ANDROID_mouse_interaction

Tipo di estensione

Estensione dell'istanza

Numero di estensione registrato

705

Revisione

1

Dipendenze di estensioni e versioni

OpenXR 1.0

Data ultima modifica

2024-09-06

Stato IP

Nessuna rivendicazione IP nota.

Collaboratori

Sharayu Shenoy, Google

Chiara Coetzee, Google

Levana Chen, Google

Spencer Quin, Google

Panoramica

Questa estensione fornisce un XrPath per ricevere l'input del mouse e definisce una posa di azione di uso comune per i profili del mouse dell'utente, inclusi i dispositivi mouse e i dispositivi trackpad.

Questa estensione introduce anche un nuovo profilo di interazione progettato appositamente per i dispositivi mouse da inserire tramite il sistema di azioni OpenXR.

Posa dinamica per le interazioni con il mouse

La seguente posa di azione ("mira") attiva un raggio del cursore 3D, indipendentemente dal fatto che gli input di monitoraggio siano forniti da un mouse o da un trackpad.

Il percorso secondario dell'azione …/input/aim/pose sarà supportato su tutti profili di interazione validi per il percorso utente /user/mouse, inclusi i profili di interazione abilitati tramite le estensioni.

Posizione di mira

…/input/aim/pose è progettato per interagire con gli oggetti tramite il cursore del mouse nello spazio 3D. Ad esempio, l'utilizzo di un cursore laser virtuale per puntare a un pulsante virtuale sulla parete è un'interazione adatta alla posa "mira".

Si tratta della stessa posa "spara" definita in Identificatori delle pose standard. Ogni profilo del controller monitorato supporta già questa posizione.

Esempio di posa di mira

Posizione

La posizione della posa "mira" è in genere la testa dell'utente, ovvero la stessa posizione della testa quando viene rilevato un movimento del mouse. La posa di mira per il mouse viene calcolata quando si verifica un movimento del mouse. L'ultima posizione di mira nota rimarrà invariata fino al successivo movimento del mouse.

Orientamento

L'orientamento della posa "mira" potrebbe essere utilizzato per eseguire il rendering di un raggio del cursore 3D per interagire con un oggetto virtuale, ad esempio facendo clic su un pulsante di menu sulla parete.

La posa di mira per il mouse viene calcolata quando si verifica un movimento del mouse. L'ultimo orientamento noto dell'obiettivo verrà mantenuto fino al successivo movimento del mouse.

La direzione -Z è la direzione in avanti del gesto di mira, ovvero la direzione indicata dal raggio di mira.

Il movimento relativo X,Y del mouse viene utilizzato per calcolare il movimento relativo del mouse lungo una sfera attorno alla testa dell'utente.

Esempio di posa di mira

Il movimento in profondità sarà supportato utilizzando i clic e lo scorrimento principali. Quando è in corso un'azione di movimento in profondità, la posizione è spostata rispetto alla posizione della testa nella direzione Z positiva o negativa lungo il raggio a seconda del valore di scorrimento positivo o negativo. Il sistema stabilirà il movimento della profondità all'interno della sfera attorno alla testa dell'utente.

Il profilo di interazione per i dispositivi mouse

Il profilo di interazione con il mouse è progettato per i runtime che forniscono input del mouse utilizzando dispositivi mouse o trackpad con pulsanti e scorrimento. In questo modo, i dispositivi mouse e trackpad possono fornire al sistema di azioni OpenXR clic, scorrimento e pose di azioni di uso comune.

Percorso profilo interazione:

  • /interaction_profiles/android/mouse_interaction

Valido per il percorso utente di primo livello:

  • /user/mouse

Percorsi dei componenti supportati:

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

Questo profilo di interazione supporta la posa dinamica descritta in questa sezione, nonché i seguenti due gruppi di input di azioni.

Azione di clic

Questo profilo di interazione supporta le azioni …/input/select/click, …/input/secondary/click e /input/tertiary/click.

…/input/select/click è un input booleano, in cui il valore XR_TRUE indica che il pulsante principale del mouse o del trackpad è premuto.

…/input/secondary/click è un input booleano, in cui il valore XR_TRUE indica che il pulsante secondario del mouse o del trackpad è premuto.

…/input/tertiary/click è un input booleano, in cui il valore XR_TRUE indica che è stato premuto il tasto di scorrimento del mouse o il tasto terziario.

Azione di scorrimento

Questo profilo di interazione supporta le azioni …/input/scroll/value.

…/input/scroll/value è un componente di input 2D che varia da -1 a 1 per mappare scorrimento verso il basso e scorrimento verso l'alto.

Nuovi tipi di oggetti

Nuovi tipi di indicatori

Nuove costanti enum

Nuovi enum

Nuove strutture

Nuove funzioni

Problemi

Cronologia delle versioni

  • Revisione 1, 29-08-2024 (Levana Chen)
    • Descrizione iniziale dell'estensione