EasyAR supporto per il framework Unity XR
EasyAR non dipende dal framework Unity XR per fornire funzionalità AR, ma può supportare alcuni pacchetti di componenti all'interno del framework Unity XR, per consentire l'utilizzo delle funzionalità fornite dal framework Unity XR quando si utilizzano le funzionalità AR di EasyAR in Unity. Di seguito viene descritto il supporto di EasyAR per il framework Unity XR e quando è possibile considerare l'utilizzo di AR Foundation.
Unity XR support
Unity supporta lo sviluppo XR attraverso il suo plugin framework e una serie di pacchetti di funzionalità e toolkit. EasyAR supporta anche questi pacchetti di componenti Unity XR, per consentire l'utilizzo delle funzionalità fornite dal framework Unity XR quando si utilizzano le funzionalità AR di EasyAR in Unity.
EasyAR supporta i seguenti pacchetti di componenti Unity XR:
| Nome visualizzato | Nome pacchetto | Versione minima supportata | Necessario | Scopo |
|---|---|---|---|---|
| XR Core Utilities | com.unity.xr.core-utils | 2.0.0 | No | Fornisce supporto per Unity.XR.CoreUtils.XROrigin |
| AR Foundation | com.unity.xr.arfoundation | 5.0.0 | No | Fornisce supporto per AR Foundation |
| XR Plugin Management | com.unity.xr.management | 3.0.0 | No | Fornisce compatibilità con la gestione di ARCore SDK e recupera il tipo di XR Loader a runtime |
| XR Interaction Toolkit | com.unity.xr.interaction.toolkit | 2.0.0 | No | Non utilizzato direttamente |
| PolySpatial visionOS | com.unity.polyspatial.visionos | 2.0.41 | No | Non utilizzato direttamente |
| Apple visionOS XR Plugin | com.unity.xr.visionos | 2.0.41 | No | Non utilizzato direttamente |
| Apple ARKit XR Plugin | com.unity.xr.arkit | 5.0.0 | No | Non utilizzato direttamente |
| Google ARCore XR Plugin | com.unity.xr.arcore | 5.0.0 | No | Fornisce compatibilità con la gestione di ARCore SDK |
Nota
EasyAR non dipende dal framework Unity XR per fornire funzionalità AR. Pertanto, quando non è richiesto l'utilizzo di componenti Unity XR come AR Foundation, è possibile non installare questi pacchetti. EasyAR continuerà a funzionare correttamente sui dispositivi supportati.
AR Foundation support
AR Foundation è il framework per lo sviluppo AR fornito da Unity. Le sue funzionalità AR sono implementate tramite sistemi sottostanti o terze parti e viene comunemente utilizzato per supportare ARCore, ARKit e alcuni headset.
Relazione tra EasyAR e AR Foundation
block
columns 6
block:groupApp:6
block:groupAppWrapper
spazio
App1["EasyAR<br>App"]
spazio
App2["EasyAR + AR Foundation<br>App"]
spazio
App3["AR Foundation<br>App"]
end
end
block:groupSensePlugin:4
columns 1
SensePlugin["EasyAR Sense Unity Plugin"]
spazio
end
block:groupARF
columns 1
ARF["AR Foundation"]
spazio
end
block:groupXRI
columns 1
XRI["XR Interaction Toolkit"]
spazio
end
block:groupAREngineInterop
columns 1
AREngineInterop["EasyAR<br>AR Engine Interop"]
spazio
end
block:groupSense:3
columns 1
Sense["EasyAR Sense"]
block:groupSenseWrapper
Image["Image<br>Tracker"]
Object["Sparse<br>SpatialMap"]
MotionTracker["Motion<br>Tracker"]
MARCore["ARCore"]
MARKit["ARKit"]
Others["..."]
end
end
block:groupXRSubsystem:2
columns 1
XRSubsystem["XR Subsystems"]
XRSDK["Unity XR SDK"]
end
block:groupSystem:6
columns 1
System["Libreria di sistema"]
block:groupSystemWrapper
spazio
AREngine["AR Engine<br> Libreria "]
spazio
ARCore["ARCore<br> Libreria "]
spazio
ARKit["ARKit<br> Libreria "]
spazio
end
end
SensePlugin --> App1
SensePlugin --> App2
ARF --> App2
ARF --> App3
groupSense --> SensePlugin
groupAREngineInterop --> SensePlugin
AREngine --> groupAREngineInterop
XRSubsystem --> ARF
XRSubsystem --> XRI
ARCore --> MARCore
ARKit --> MARKit
ARCore --> XRSDK
ARKit --> 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 AREngineInterop fill:none,stroke:none,stroke-width:0px,color:#fff
style Sense fill:none,stroke:none,stroke-width:0px,color:#fff
style groupSenseWrapper fill:none,stroke:none,stroke-width:0px
style XRSubsystem fill:none,stroke:none,stroke-width:0px,color:#fff
style System fill:none,stroke:none,stroke-width:0px
style groupSystemWrapper fill:none,stroke:none,stroke-width:0px
classDef EasyAR fill:#6e6ce6,stroke:#333,color:#fff
class groupAREngineInterop EasyAR
class groupSense EasyAR
class SensePlugin EasyAR
classDef Unity fill:#636,stroke:#333,color:#fff
class groupXRSubsystem Unity
class ARF Unity
class XRI Unity
EasyAR e AR Foundation sono due framework AR indipendenti. EasyAR non dipende da AR Foundation per implementare le sue funzionalità AR. EasyAR può anche utilizzare librerie di sistema come ARKit, ARCore per implementare le capacità di tracciamento del movimento. Inoltre, EasyAR fornisce due implementazioni di tracciamento del movimento non disponibili in AR Foundation: l'implementazione proprietaria di EasyAR e quella fornita da AR Engine, offrendo così un supporto per dispositivi più ampio rispetto ad AR Foundation.
Allo stesso tempo, EasyAR può acquisire i dati runtime di AR Foundation, utilizzando le sue capacità di tracciamento del movimento durante il runtime di AR Foundation per guidare altre funzionalità AR, fornendo così compatibilità con AR Foundation. Queste funzionalità includono:
- Mega
- Mappa spaziale sparsa
- Mappa spaziale densa
- Tracciamento di immagini e oggetti con fusione del movimento
Si può fare riferimento a Motion tracking and EasyAR features per comprendere in dettaglio la relazione tra tracciamento del movimento e funzionalità di EasyAR.
Quando utilizzare AR Foundation
Nella maggior parte dei casi, è possibile non utilizzare AR Foundation, poiché EasyAR funzionerà correttamente su una gamma di dispositivi più ampia rispetto a quella supportata da AR Foundation. Generalmente, si può considerare l'uso di AR Foundation in due situazioni:
Necessità di utilizzare funzionalità ARKit o ARCore non incapsulate in EasyAR
Se è necessario utilizzare alcune funzionalità fornite da ARCore o ARKit non incapsulate in EasyAR, è possibile utilizzare AR Foundation. Ad esempio, AR Foundation fornisce supporto per il tracciamento del volto di ARKit ARFaceManager, funzionalità che EasyAR non incapsula.
Utilizzare il tracciamento del movimento implementato tramite ARCore invece di EasyAR su alcuni telefoni Xiaomi con problemi di sistema
Se si desidera utilizzare ARCore su tutti i telefoni Xiaomi e Redmi che supportano ARCore, è possibile abilitare AR Foundation. A causa di problemi di sistema su alcuni telefoni Xiaomi e Redmi, il wrapper ARCore di EasyAR non supporta questi dispositivi, inclusi le serie Mi 9, Mi 10, Redmi K20, Redmi K30, Redmi K40 (l'elenco non è completo, il supporto per i dispositivi viene aggiornato continuamente). Su questi telefoni, nella configurazione predefinita non verrà utilizzato ARCore; sui telefoni che supportano il tracciamento del movimento di EasyAR verrà utilizzato il tracciamento del movimento di EasyAR.
L'utilizzo di AR Foundation non fornisce prestazioni ottimali per le funzionalità di EasyAR. Esistono due situazioni:
- Su quella parte di telefoni Xiaomi e Redmi non supportati direttamente da EasyAR, i dati in input a EasyAR sono immagini in scala di grigi anziché a colori, il che influisce sull'efficacia di alcuni algoritmi. A causa dei problemi intrinseci dei dispositivi, ciò non può essere risolto tramite configurazione.
- Quando si utilizza Mega, la configurazione predefinita utilizzata da AR Foundation non è ottimale.
Attenzione
È possibile modificare ARCameraManager.currentConfiguration di AR Foundation per ottenere dati di input migliori. Abilitando ARCoreARFoundationFrameSource.OptimizeConfigurationForTracking è possibile selezionare automaticamente la migliore ARCameraManager.currentConfiguration. Tuttavia, si noti che alcuni telefoni (ad esempio Xiaomi 10) presentano problemi intrinseci e dopo la modifica della configurazione non possono acquisire immagini, rendendo EasyAR inutilizzabile (l'applicazione ha uno sfondo immagine ma le funzionalità di EasyAR non reagiscono). Pertanto, generalmente non è consigliabile abilitare questa opzione. Se si desidera utilizzarla, è necessario preparare un piano di fallback per quando EasyAR non è utilizzabile.
Supporto headset
Poiché il framework Unity XR non fornisce interfacce dati sufficientemente complete, EasyAR non supporta gli headset tramite il framework Unity XR.
Sugli headset che supportano il framework Unity XR, EasyAR supporterà l'utilizzo di Unity.XR.CoreUtils.XROrigin tramite XR Core Utilities, ma non utilizza il framework Unity XR per implementare il supporto agli headset. EasyAR non interferisce con le funzionalità di XR Interaction Toolkit, che possono essere utilizzate normalmente se il dispositivo le supporta.
In generale, i produttori di headset forniscono SDK o interfacce di sistema per fornire questi dati. EasyAR supporta gli headset tramite interfacce di sistema e SDK dei produttori. Talvolta questi SDK non sono completamente pubblici; EasyAR collabora con i produttori per fornire un supporto completo. Supporto per headset in Unity descrive gli headset supportati da EasyAR e il loro utilizzo.
Passaggi successivi
- Scopri come abilitare AR Foundation in un progetto EasyAR
- Scopri configurazione della scena e utilizzo di AR Foundation in un progetto EasyAR
- Scopri come passare automaticamente ad AR Foundation in base al supporto del dispositivo