Guida Campione
Guida Campione — LeonardoXR SDK
Guida Campione
- Versione 1.0.2
- Dispositivo: Youbiquo Leonardo XR
- SDK di base: Snapdragon Spaces 1.0.4
Samples are organised in two sections:
- Esempi LeonardoXR: esempi specifici per le funzionalità proprietarie e di interazione di Leonardo XR.
- Esempi Snapdragon Spaces Core: esempi forniti da Qualcomm per le funzionalità AR/XR di base.
Importazione di campioni
Esempi principali di Snapdragon Spaces
Il pacchetto Core Samples è importabile da Window > Package Manager > Snapdragon Spaces > Core Samples. Dopo l’importazione, aggiungi tutte le scene alla build tramite Window > XR > Snapdragon Spaces > Add Scenes to Build Settings.
Campioni principali LeonardoXR
Il pacchetto LeonardoXR Core Samples è importabile da Window > Package Manager > LeonardoXR > Core Samples. Dopo l’importazione, le scene sono disponibili nel Samples/LeonardoXR/[version]/Core Samples/Scenes/.
Campioni LeonardoXR
Scena di interazione
- Scena:
Samples/LeonardoXR/.../Core Samples/Scenes/Interaction
Una scena interattiva completamente preconfigurata per l’utilizzo con controller e mani. Il giocatore assembla un motore V8 su un tavolo fluttuante fantascientifico, dimostrando le principali funzionalità di interazione dell’SDK.
Cosa dimostra
- XR Grab Interattivo con aggancio a presa
- Sistema di affordance (feedback visivo e audio alla selezione e al passaggio del mouse)
- Menu a mano per la navigazione all’interno della scena
- Compatibile sia con il controller (Companion Controller) che con il tracciamento delle mani (modalità Dual Hand).
Come eseguirlo
Apri la scena di interazione dagli esempi del Gestore pacchetti, aggiungila alle impostazioni di compilazione e distribuiscila su LeonardoXR. Vedi il sezione seguente. Build and Run


Scena dei gesti delle mani
- Scena:
Samples/LeonardoXR/.../Core Samples/Scenes/Hand Gestures
Dimostra il tracciamento della mano, il riconoscimento di gesti personalizzati e l’ispezione in tempo reale della forma della mano su LeonardoXR.
Cosa dimostra
- Definizione di gesti personalizzati utilizzando le risorse di posa di
XRHandShape - Icone gestuali e feedback visivo per i gesti riconosciuti.
XRHandGestureDebugUIper l’ispezione in tempo reale dello stato congiunto e gestuale.Integrazione con il sistema di gesti XR Hands
Prerequisiti: Pacchetto XR Hands installato con i campioni Gestures e Hand Visualizer importati.
Scena di accesso con doppia fotocamera
- Scena:
Samples/LeonardoXR/.../Core Samples/Scenes/Dual Camera Access
Dimostra l’accesso sincronizzato a entrambe le fotocamere Leonardo XR utilizzando l’API Android Camera2 tramite un plugin Java nativo.
Cosa dimostra
Recupero diretto dei fotogrammi della fotocamera tramite l'API Android
Camera2- Integrazione del plugin nativo (
CameraAccessUtility.cs che funge da ponte versoCamera2StateCallback.java) - Visualizzazione delle informazioni della fotocamera e rendering dell’inquadratura nel visore
Prerequisiti: Accesso alla doppia fotocamera abilitato nel gruppo di funzionalità di LeonardoXR.
DOCUMENTAZIONE IN CORSO La documentazione dettagliata dell’API e la guida alla configurazione saranno disponibili in una versione futura.
Scena di analisi delle immagini tramite IA
- Scena:
Samples/LeonardoXR/.../Core Samples/Scenes/GPT Image Analyzer
Dimostrazione di analisi delle immagini basata sull’intelligenza artificiale su LeonardoXR utilizzando le API di visione GPT, con output audio tramite Google Text-to-Speech.
Cosa dimostra
- Acquisizione di fotogrammi dalla fotocamera del dispositivo
- Invio di frame a un’API di analisi delle immagini GPT (
GPTImageAnalyzer.cs) - Conversione della risposta testuale in voce e riproduzione. (
GoogleTextToSpeechConverter.cs)
Prerequisiti: Chiavi API GPT e Google TTS valide configurate nella scena.
Scena WebXR
- Scena:
Samples/LeonardoXR/.../Core Samples/Scenes/WebXR
Una scena preconfigurata per l’esportazione in WebXR, destinata al browser Wolvic preinstallato su LeonardoXR.
Cosa dimostra
Configurazione di un simulatore XR compatibile con WebXR utilizzando il prefab
XRRig WebXR (Controllers)- Come creare un progetto Unity per WebXR utilizzando l’utility di esportazione WebXR di De-Panther.
Prerequisites:
Scarica e installa l'utilità di esportazione De-Panther WebXR Export Utility
prima di iniziare la compilazione.
Esempi principali di Snapdragon Spaces
Esempio di ancore locali
- Scena:
Samples/Snapdragon Spaces/.../Core Samples/Scenes/Anchor
Questo esempio mostra come creare e distruggere punti di ancoraggio locali per tracciare con precisione un punto nel mondo reale. Richiede che la funzione “Spacial Anchors” sia abilitata in OpenXR.
Come funziona
Un dispositivo di posizionamento trasparente fluttua a 1 metro di distanza dalla telecamera. Quando l’opzione “Posiziona ancoraggio sulle superfici” è abilitata, un raggio viene proiettato in avanti a ogni fotogramma. Quando una superficie viene colpita, il dispositivo diventa giallo. Toccando il touchpad o utilizzando l’interattore oculare si crea un ARAnchor con un dispositivo di tracciamento.
private void OnAnchorsChanged(ARAnchorsChangedEventArgs args)
{
foreach (var anchor in args.updated)
{
Destroy(anchor.transform.GetChild(0).gameObject);
var newGizmo = Instantiate(
anchor.trackingState == TrackingState.None
? GizmoUntrackedAnchor
: GizmoTrackedAnchor);
newGizmo.transform.SetParent(anchor.transform, false);
}
}
Salvataggio, eliminazione e caricamento degli ancoraggi
Abilita l'opzione Save new anchors nell'archivio locale per rendere persistente ogni nuovo ancoraggio.
- Cubo bianco sul dispositivo = ancoraggio salvato e tracciato; cubo rosso = non tracciato.
- Load All Saved Anchors — carica e tenta di localizzare tutti gli ancoraggi memorizzati.
- Clear Store — Elimina tutti gli ancoraggi memorizzati (non distrugge gli ancoraggi già caricati).
- Destroy All Anchors — distrugge tutti gli oggetti di gioco di ancoraggio attivi (con un breve ritardo).
Esempio di tracciamento delle mani
- Scena:
Samples/.../Core Samples/Scenes/HandTracking
Dimostra la visualizzazione delle articolazioni della mano e il riconoscimento dei gesti tramite il pacchetto di interazione QCHT. Richiede i pacchetti Hand Tracking e QCHT/XR Hands.
Esempio di hit test
- Scena:
Samples/.../Core Samples/Scenes/HitTesting
Dimostra il rilevamento continuo di collisioni tramite raycast su piani e mesh del mondo reale utilizzando ARRaycastManager. Mostra come posizionare oggetti virtuali su superfici rilevate.Esempio di monitoraggio delle immagini
- Scena:
Samples/.../Core Samples/Scenes/ImageTracking
Dimostra il tracciamento di immagini di riferimento stampate e la sovrapposizione di contenuti virtuali. Supporta librerie di immagini statiche e modificabili.
Esempio di rilevamento aereo
- Scena:
Samples/.../Core Samples/Scenes/PlaneDetection
Dimostra il rilevamento e la visualizzazione di piani orizzontali e verticali tramite ARPlaneManager. Supporta modalità di rilevamento e piani di inviluppo convesso opzionali.Esempio di accesso al frame della fotocamera
- Scena:
Samples/.../Core Samples/Scenes/CameraFrameAccess
Dimostra il recupero dei frame raw della telecamera (YUV / YUYV) utilizzandoARCameraManager. Include informazioni estrinseche del sensore, query sul conteggio delle telecamere e accesso ai frame accelerato dalla GPU. Richiede l'opzione Allow 'unsafe' Code nelle impostazioni del lettore.Esempio di mesh spaziale
- Scena:
Samples/.../Core Samples/Scenes/SpatialMeshing
Dimostra la creazione di mesh ambientali in tempo reale utilizzando ARMeshManager. Include un cursore per la regolazione dell’opacità e il componente opzionale SpacesARMeshManagerConfig.
Esempio di tracciamento tramite codice QR
- Scena:
Samples/.../Core Samples/Scenes/QRCodeTracking
Dimostra la scansione e il tracciamento dei codici QR tramite SpacesQrCodeManager. Sono disponibili diverse modalità di tracciamento.
Esempio di toolkit di interazione XR
- Scena:
Samples/.../Core Samples/Scenes/XRInteractionToolkit
Dimostra le interazioni XRIT standard (interagenti a raggio, interagenti diretti, teletrasporto) in un progetto Snapdragon Spaces. Compatibile con la configurazione LeonardoXR.
Componenti dello strato di composizione
Spaces Composition Layer Esegue il rendering delle texture direttamente sul visore, bypassando le fasi di post-elaborazione. I tipi di geometria supportati sono Quad, Cilindro, Sfera e Cubo. Utile per interfacce utente ad alta nitidezza o elementi che devono mantenere la qualità indipendentemente dagli effetti della scena.
Campioni aggiuntivi
| Sample | Description |
|---|---|
| Display Refresh Rate | Query and runtime setting of display refresh rate via the XR_EXT_display_refresh_rate extension. |
| Performance Settings | Setting CPU/GPU performance levels via the XR_EXT_performance_settings extension. |
Costruisci ed Esegui
Questa sezione descrive come creare e distribuire un’applicazione di esempio su LeonardoXR.
1. Abilita la modalità sviluppatore
Per installare app tramite sideload, è necessario abilitare la Modalità sviluppatore sul LeonardoXR. Consultare il capitolo Utilità e suggerimenti Utilities and Tips per istruzioni dettagliate.
2. Connetti il dispositivo
Collega le cuffie LeonardoXR al computer tramite un cavo USB. Al primo collegamento, sul visore comparirà una finestra di dialogo che ti chiederà di confermare la connessione: accettala.
3. Aggiungi scene alle impostazioni di compilazione
- Dal menu principale di Unity seleziona File > Build Settings…
- Assicurati che le scene che vuoi costruire siano elencate nell’elenco Scenes in Build. Aggiungili trascinandoli dal pannello Progetto o facendo clic Add Open Scenes.
- In alternativa, utilizza Window > XR > Snapdragon Spaces > Add Scenes to Build Settings per aggiungere automaticamente tutte le scene di esempio di Snapdragon Spaces.
4. Seleziona il dispositivo Esegui
nella finestra Build Settings, scegli il tuo LeonardoXR nel campo di Run Device. Se il dispositivo non è presente nell’elenco, fai clic Refresh.
5. Build and Run
- Clic Build and Run.


- Nella finestra Build Android, Inserisci un nome per il file APK (e.g.
LeonardoXR_Demo.apk). - Unity compilerà e distribuirà l’applicazione. L’app si avvierà automaticamente sul visore.
Se l’app non si avvia automaticamente, cercala nel cassetto delle app del dispositivo e aprila manualmente.