Table of Contents

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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Libreria&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      spazio
      ARCore["ARCore<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Libreria&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      spazio
      ARKit["ARKit<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Libreria&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"] 
      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:

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

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

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

Argomenti correlati


  1. In Unity 6 e versioni successive, la versione minima supportata è 2.0.4. In Unity 2022.3, la versione minima supportata è 1.2.3, mentre la 1.3.x non è supportata.