Pacchetto di estensione per visori easyar unity
Questo documento introduce il concetto, i limiti delle capacità e le conoscenze di base necessarie per creare un pacchetto di estensione per visori con EasyAR Unity.
Prima di iniziare
- Leggi Supporto per visori di EasyAR per comprendere i tipi di visori supportati da EasyAR e le funzionalità di EasyAR eseguibili sui visori.
- Leggi Supporto per visori di EasyAR in Unity per comprendere l'architettura complessiva del supporto per visori di EasyAR in Unity.
Che cos'è l'estensione EasyAR Unity per visore
L'estensione EasyAR Unity per visore è un pacchetto Unity che contiene una serie di codice ed esempi per aiutarti a utilizzare le funzionalità di EasyAR Sense sul tuo dispositivo visore. Con questa estensione, puoi integrare la maggior parte delle funzionalità di EasyAR Sense (come il tracciamento delle immagini, la mappa spaziale densa, ecc.) nel tuo dispositivo, sfruttando così le potenti funzionalità AR fornite da EasyAR.
L'utilizzo dell'estensione EasyAR Unity per visore è uno dei modi in cui EasyAR supporta i visori. La figura seguente mostra l'architettura complessiva di EasyAR in Unity e la posizione dell'estensione per visore al suo interno.
block
columns 4
block:groupApp:4
block:groupAppWrapper
space
App1["EasyAR + Device A<br>App"]
space
App2["EasyAR<br>App"]
space
App3["EasyAR + Device B<br>App"]
end
end
block:groupSensePluginExtension
columns 1
SensePluginExtension["EasyAR Sense Unity Plugin<br>Extension for Device A"]
space
end
block:groupSensePlugin
columns 1
SensePlugin["EasyAR Sense Unity Plugin"]
space
end
block:groupXRI
columns 1
XRI["XR Interaction Toolkit"]
space
end
block:groupARF
columns 1
ARF["AR Foundation"]
space
end
block:groupDeviceAUnity
columns 1
DeviceAUnity["Device A<br>Unity SDK"]
space
end
block:groupSense
columns 1
Sense["EasyAR Sense"]
block:groupSenseWrapper
MDeviceB["Device B<br>CameraDevice"]
Others["..."]
end
end
block:groupXRSubsystem:2
columns 1
XRSubsystem["XR Subsystems"]
XRSDK["Unity XR SDK"]
end
block:groupSystem:4
columns 1
System["Native Library"]
block:groupSystemWrapper
space
DeviceA["Device A<br> Library "]
space
space
DeviceB["Device B<br> Library "]
space
end
end
SensePluginExtension --> App1
SensePlugin --> App1
SensePlugin --> App2
SensePlugin --> App3
ARF --> App3
XRI --> App1
XRI --> App3
groupSense --> SensePlugin
groupDeviceAUnity --> SensePluginExtension
SensePlugin --> SensePluginExtension
DeviceA --> groupDeviceAUnity
DeviceA --> XRSDK
XRSubsystem --> ARF
XRSubsystem --> XRI
DeviceB --> MDeviceB
DeviceB --> XRSDK
style groupApp fill:none,stroke:none,stroke-width:0px
style groupAppWrapper fill:none,stroke:none,stroke-width:0px
style groupSensePlugin fill:none,stroke:none,stroke-width:0px
style groupARF fill:none,stroke:none,stroke-width:0px
style groupXRI fill:none,stroke:none,stroke-width:0px
style DeviceAUnity fill:none,stroke:none,stroke-width:0px
style Sense fill:none,stroke:none,stroke-width:0px,color
style groupSenseWrapper fill:none,stroke:none,stroke-width:0px
style XRSubsystem fill:none,stroke:none,stroke-width:0px
style System fill:none,stroke:none,stroke-width:0px
style groupSystemWrapper fill:none,stroke:none,stroke-width:0px
style groupSensePluginExtension fill:none,stroke:none,stroke-width:0px
classDef EasyAR fill:#6e6ce6,stroke:#333,color:#fff
class SensePluginExtension EasyAR
La figura elenca due modi tipici di supporto per visori: tramite l'estensione Unity per visore che si interfaccia con l'SDK del dispositivo (Device A), e direttamente nella libreria EasyAR Sense che si interfaccia con l'SDK del dispositivo (Device B). Questo documento si concentra principalmente sul primo.
Posso creare il mio pacchetto di estensione per visori?
Attualmente, l'industria AR/VR/MR/XR non ha ancora sviluppato uno schema di interfaccia veramente unificato. Sebbene OpenXR sia un ottimo candidato, l'evoluzione delle specifiche e l'implementazione nel settore richiedono ancora tempo. Pertanto, generalmente non è così semplice far funzionare direttamente EasyAR su dispositivi commerciali, ed è probabile che si verifichino carenze nell'interfaccia dati. Con lo sviluppo del settore, alcuni dispositivi emergenti potrebbero offrire un buon supporto per le interfacce. Ad esempio, nel 2024 Apple ha aperto le interfacce relative a Vision Pro, interfacce che sono già sufficienti per supportare l'esecuzione di EasyAR, sebbene il loro utilizzo richieda comunque una certa competenza tecnica.
Se non riesci a valutare la situazione, ti consigliamo di contattare il produttore dell'hardware o l'area commerciale di EasyAR per ottenere il supporto adeguato per il dispositivo.
Se sei un produttore di hardware e desideri supportare le funzionalità di EasyAR sul tuo dispositivo, puoi fare riferimento alla documentazione successiva per creare un pacchetto di estensione per visori, permettendo così alla maggior parte delle funzioni di EasyAR di funzionare sul tuo dispositivo. Questo documento fornisce specifiche per dati e interfacce senza vincolare tutti i dettagli implementativi; qualsiasi metodo di implementazione o definizione di interfaccia può essere discusso. Siamo benvenuti a contattarci tramite i canali commerciali per comunicazioni.
L'hardware coperto da questo documento deve possedere intrinsecamente capacità di tracciamento del movimento o SLAM. Le funzioni di EasyAR necessitano di essere eseguite su solide capacità di tracciamento del dispositivo. Generalmente non è consigliabile affidarsi alle funzionalità di EasyAR per ottimizzare il tracciamento dell'hardware, poiché ciò creerebbe una dipendenza circolare che teoricamente amplificherebbe gli errori e porterebbe l'intero sistema a diventare instabile. Se il dispositivo stesso non possiede capacità di tracciamento del movimento, lo schema di supporto non rientra nell'ambito di questo documento. Se necessario, contattaci tramite i canali commerciali per discutere.
Limiti delle funzionalità del pacchetto di estensione per visori
L'obiettivo del pacchetto di estensione per visori è far funzionare la maggior parte delle funzionalità di EasyAR Sense sul tuo dispositivo. Per raggiungere questo obiettivo, è necessario comprendere i limiti delle funzionalità del pacchetto di estensione per visori.
Contenuto del pacchetto di estensione per headset
L'estensione che implementerai consiste in:
- Codice che utilizza la funzionalità fotocamera personalizzata per acquisire dati dalla tua API del dispositivo e inviarli a
EasyAR Sense. - In Unity, l'estensione per headset utilizza un'origine frame esterna e un flusso di dati
EasyAR Sensedefinito dalEasyAR Sense Unity Pluginper semplificare lo sviluppo della fotocamera personalizzata. - In Unity, l'estensione per headset è un pacchetto Unity contenente script di runtime, script dell'editor e un esempio dell'estensione, che tu o EasyAR potete distribuire agli utenti downstream.
Consiglio
Se non desideri esporre i dettagli di integrazione a sistemi esterni, puoi contattare EasyAR per discutere. L'integrazione diretta utilizzando l'interfaccia C all'interno di EasyAR Sense è fattibile e ha precedenti.
Durante l'implementazione dell'estensione, potresti:
- Modificare la progettazione dell'interfaccia e l'implementazione interna del tuo SDK.
- Discutere e confermare con il tuo team le strategie per l'acquisizione e l'utilizzo dei dati.
- Dedicare molto tempo alla verifica della correttezza dei dati piuttosto che alla scrittura del codice.
Dopo aver completato l'estensione, vedrai:
- La maggior parte delle funzionalità di
EasyAR Senseutilizzabili sul tuo dispositivo, sfruttando le capacità di tracciamento del movimento del dispositivo. - I servizi cloud EasyAR supportati all'interno di
EasyAR Senseutilizzabili sul tuo dispositivo. - Possibilità di utilizzare solo licenze EasyAR XR. Le licenze Personal, Professional e Classic non funzioneranno sul tuo dispositivo.
- Tutte le limitazioni delle licenze EasyAR quando si utilizza una fotocamera personalizzata si applicano allo stesso modo al tuo dispositivo.
Cosa non è incluso nel pacchetto di estensione per visori
Questa estensione non può funzionare senza EasyAR Sense:
- Questa estensione per visori non funziona in modo autonomo; come dipendenza,
EasyAR Senseè necessario. In Unity, ilEasyAR Sense Unity Plugindeve essere utilizzato. - Non chiama direttamente le API dei servizi cloud EasyAR (ad esempio, il servizio di localizzazione EasyAR Mega); queste chiamate vengono gestite internamente da
EasyAR Sense. - In Unity, non chiama direttamente i metodi delle interfacce per le funzionalità AR (come il tracciamento delle immagini); queste vengono gestite internamente nel
EasyAR Sense Unity Plugin. - In Unity, non modifica il transform degli oggetti nella scena o dei target di tracciamento; questo viene gestito internamente nel
EasyAR Sense Unity Plugin.
Questa estensione non può funzionare senza il tuo SDK del dispositivo:
- In Unity, l'estensione per visori o il
EasyAR Sense Unity Pluginnon modificano il transform della camera nella scena; questo deve essere gestito nel tuo SDK del dispositivo o nel suo percorso di dipendenze.
Attraverso l'estensione per visori, alcune funzionalità di EasyAR rimangono non disponibili:
- La funzionalità di tracciamento delle superfici non sarà utilizzabile.
- Il tracciamento del movimento nativo di EasyAR non sarà utilizzabile.
- Il rilevamento del piano (parte del tracciamento del movimento di EasyAR) non sarà utilizzabile.
Come utilizzare Mega sul mio dispositivo?
L'esecuzione di Mega sul dispositivo è una preoccupazione comune per molti utenti. In Unity, il servizio Mega è un modulo funzionale che opera su molte funzionalità di base di EasyAR Sense. Pertanto, finché il tuo dispositivo supporta completamente EasyAR Sense, anche Mega sarà supportato.
Generalmente, non è consigliabile verificare inizialmente il supporto del dispositivo per Mega eseguendo direttamente l'esempio Mega sul dispositivo. Questo perché Mega utilizza in modo combinato tutti i dati di input ed è relativamente tollerante agli errori in questi dati. L'esecuzione diretta dell'esempio Mega potrebbe facilmente portare a risultati insoddisfacenti a causa di incompatibilità nelle interfacce dati o di scarsa qualità dei dati, rendendo difficile identificare la causa del problema e complicando il debug futuro.
Importante
Il servizio Mega richiede un certo livello di capacità di tracciamento del movimento del dispositivo. Se le capacità di tracciamento del movimento del dispositivo sono scarse, anche le prestazioni di Mega ne risentiranno. Negli scenari AR su larga scala, è necessario prestare particolare attenzione alle differenze di prestazioni tra ambienti interni ed esterni.
Importante
Mega è generalmente utilizzato per scenari spaziali ampi, pertanto è necessario prestare particolare attenzione agli oggetti a lunga distanza e all'effetto di visualizzazione degli oggetti quando si ruota la testa o ci si sposta. Se il sistema di visualizzazione del dispositivo presenta errori significativi, anche se Mega funziona correttamente, l'utente percepirà che gli oggetti virtuali non si allineano correttamente con gli oggetti reali.
Conoscenze di base necessarie e configurazione del team
Creare un pacchetto di estensione per head-mounted display non è un compito semplice e richiede un lavoro approfondito da parte tua e del tuo team in più aree. In genere, per completare un'estensione head-mounted, è necessario coinvolgere sia lo sviluppo Unity che personale di team esterno allo sviluppo Unity. A causa della mancanza di standard, modificare solo il motore 3D di solito non è sufficiente per completare l'estensione head-mounted. Si consiglia di coinvolgere fin dal primo giorno ingegneri di sviluppo di basso livello come ingegneri di sistema e ingegneri SDK.
Costruire dispositivi AR/VR richiede conoscenze di dominio specifiche. Allo stesso modo, per eseguire e convalidare EasyAR Sense sul dispositivo, tu o il tuo team dovrete essere esperti nelle seguenti aree:
- La struttura fisica e il sistema di rendering del vostro dispositivo
- La geometria del sistema fotografico
- Lo sviluppo SDK
- Competenze di debug Android di base, come adb (Mainland China, International)
Se lavori su Unity, avrai anche bisogno di conoscere:
- Basi dello sviluppo Unity e utilizzo dei pacchetti
- Sviluppo di pacchetti Unity
- Fondamenti del linguaggio C#, inclusi elementi come IDisposable
Inoltre, una certa conoscenza in queste aree ti aiuterà a comprendere meglio il sistema, in particolare come inviare i dati corretti a EasyAR:
- Sviluppo Android (Mainland China, International)
- Visione geometrica, in particolare il riconoscimento delle immagini e la ricostruzione 3D
Prossimi passi
Nei prossimi articoli, apprenderai il flusso completo per creare un pacchetto di estensione per headset:
- Supporto headset per EasyAR spiega come utilizzare un template per creare un nuovo pacchetto di estensione per headset e completare lo sviluppo di base dell'estensione di input
- Verifica operativa (bring-up) spiega come verificare la correttezza dell'estensione di input sul dispositivo
- Pubblicare il pacchetto di estensione spiega come impacchettare e distribuire il pacchetto di estensione per headset agli utenti downstream