Table of Contents

EasyAR prise en charge de l'infrastructure Unity XR

EasyAR ne dépend pas de l'infrastructure Unity XR pour fournir des fonctionnalités AR, mais peut prendre en charge certains composants de l'infrastructure Unity XR, permettant ainsi d'utiliser les fonctionnalités offertes par Unity XR tout en exploitant les capacités AR d'EasyAR dans Unity. Ce document décrit la prise en charge d'Unity XR par EasyAR et les cas où l'utilisation d'AR Foundation peut être envisagée.

Prise en charge de unity xr

Unity prend en charge le développement XR via son infrastructure de plugins ainsi qu'une série de packages et d'outils. EasyAR prend également en charge ces packages Unity XR afin de permettre l'utilisation des fonctionnalités de l'infrastructure Unity XR lors de l'emploi des capacités AR d'EasyAR dans Unity.

EasyAR prend en charge les packages Unity XR suivants :

Nom d'affichage Nom du package Version minimale Requis Usage
XR Core Utilities com.unity.xr.core-utils 2.0.0 Non Fournit la prise en charge de Unity.XR.CoreUtils.XROrigin
AR Foundation com.unity.xr.arfoundation 5.0.0 Non Fournit la prise en charge d'AR Foundation
XR Plugin Management com.unity.xr.management 3.0.0 Non Fournit la compatibilité de gestion du SDK ARCore et l'obtention du type de XR Loader à l'exécution
XR Interaction Toolkit com.unity.xr.interaction.toolkit 2.0.0 Non Non utilisé directement
PolySpatial visionOS com.unity.polyspatial.visionos 2.0.41 Non Non utilisé directement
Apple visionOS XR Plugin com.unity.xr.visionos 2.0.41 Non Non utilisé directement
Apple ARKit XR Plugin com.unity.xr.arkit 5.0.0 Non Non utilisé directement
Google ARCore XR Plugin com.unity.xr.arcore 5.0.0 Non Fournit la compatibilité de gestion du SDK ARCore
Note

EasyAR ne dépend pas de l'infrastructure Unity XR pour fournir des fonctionnalités AR. Par conséquent, en l'absence de besoin d'utiliser des composants Unity XR tels qu'AR Foundation, ces packages peuvent ne pas être installés. EasyAR continuera de fonctionner normalement sur les appareils pris en charge.

Prise en charge d'AR Foundation

AR Foundation est le framework de développement AR fourni par Unity. Ses fonctionnalités AR sont implémentées via des systèmes sous-jacents ou des tiers, couramment utilisés pour prendre en charge ARCore, ARKit et certains casques.

Relation entre EasyAR et AR Foundation

block
  columns 6
  block:groupApp:6
    block:groupAppWrapper
      space
      App1["EasyAR<br>App"]
      space
      App2["EasyAR + AR Foundation<br>App"]
      space
      App3["AR Foundation<br>App"]
    end
  end
  
  block:groupSensePlugin:4
    columns 1
    SensePlugin["Plugin Unity EasyAR Sense"]
    space
  end
  block:groupARF
    columns 1
    ARF["AR Foundation"]
    space
  end
  block:groupXRI
    columns 1
    XRI["XR Interaction Toolkit"]
    space
  end
  
  block:groupAREngineInterop
    columns 1
    AREngineInterop["Interop moteur AR<br>EasyAR"]
    space
  end  
  block:groupSense:3
    columns 1
    Sense["EasyAR Sense"]
    block:groupSenseWrapper
      Image["Tracker<br>d'images"]
      Object["Carte spatiale<br>éparse"]
      MotionTracker["Tracker de<br>mouvement"]
      MARCore["ARCore"]
      MARKit["ARKit"]
      Others["..."]
    end
  end
  block:groupXRSubsystem:2
    columns 1
    XRSubsystem["Sous-systèmes XR"]
    XRSDK["SDK Unity XR"]
  end

  block:groupSystem:6
    columns 1
    System["Bibliothèque système"]
    block:groupSystemWrapper
      space
      AREngine["Bibliothèque<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;moteur AR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      space
      ARCore["Bibliothèque<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ARCore&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      space
      ARKit["Bibliothèque<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ARKit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"] 
      space
    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 et AR Foundation sont deux frameworks AR indépendants. EasyAR ne dépend pas d'AR Foundation pour implémenter ses fonctionnalités AR. EasyAR peut également utiliser des bibliothèques système telles qu'ARKit ou ARCore pour fournir des capacités de suivi de mouvement. De plus, EasyAR propose deux implémentations de suivi de mouvement non disponibles dans AR Foundation : sa propre implémentation et celle fournie par AR Engine, offrant ainsi une prise en charge d'appareils plus étendue qu'AR Foundation.

Parallèlement, EasyAR peut récupérer les données d'exécution d'AR Foundation et utiliser ses capacités de suivi de mouvement pour piloter d'autres fonctionnalités AR, assurant ainsi une compatibilité avec AR Foundation. Ces fonctionnalités incluent :

  • Mega
  • Carte spatiale éparse
  • Carte spatiale dense
  • Suivi d'image et d'objet utilisant la fusion de mouvement

Consultez Motion tracking and EasyAR features pour comprendre en détail la relation entre le suivi de mouvement et les fonctionnalités d'EasyAR.

Quand utiliser AR Foundation

Dans la plupart des cas, AR Foundation n'est pas nécessaire, car EasyAR fonctionne sur un éventail d'appareils plus large que celui pris en charge par AR Foundation. L'utilisation d'AR Foundation peut être envisagée dans deux situations principales :

  1. Besoin d'utiliser des fonctionnalités d'ARKit ou d'ARCore non encapsulées par EasyAR

    Si vous avez besoin de fonctionnalités spécifiques d'ARCore ou d'ARKit non fournies par EasyAR, vous pouvez utiliser AR Foundation. Par exemple, AR Foundation offre le suivi facial d'ARKit via ARFaceManager, une fonctionnalité non encapsulée par EasyAR.

  2. Utilisation du suivi de mouvement basé sur ARCore plutôt que sur EasyAR sur certains téléphones Xiaomi présentant des problèmes système

    Si vous souhaitez utiliser ARCore sur tous les téléphones Xiaomi et Redmi compatibles, envisagez d'activer AR Foundation. En raison de problèmes système sur certains modèles Xiaomi et Redmi, l'encapsulation ARCore d'EasyAR ne les prend pas en charge. Cela inclut les séries Mi 9, Mi 10, Redmi K20, Redmi K30, Redmi K40 (liste non exhaustive, la prise en charge des appareils est mise à jour continuellement). Sur ces appareils, ARCore ne sera pas utilisé par défaut. Sur les téléphones compatibles avec le suivi de mouvement EasyAR, celui-ci sera utilisé à la place.

L'utilisation d'AR Foundation n'offre pas les performances optimales des fonctionnalités EasyAR. Deux cas se présentent :

  1. Sur les téléphones Xiaomi et Redmi non directement pris en charge par EasyAR, les données fournies à EasyAR sont en niveaux de gris plutôt qu'en couleur, ce qui peut affecter l'efficacité de certains algorithmes. Ceci est dû à des problèmes inhérents aux appareils et ne peut être résolu par configuration.
  2. Lors de l'utilisation de Mega, la configuration par défaut utilisée par AR Foundation n'est pas optimale.
Attention

Il est possible de modifier ARCameraManager.currentConfiguration d'AR Foundation pour obtenir de meilleures données d'entrée. Activer ARCoreARFoundationFrameSource.OptimizeConfigurationForTracking sélectionne automatiquement la meilleure ARCameraManager.currentConfiguration. Cependant, notez que certains téléphones (par exemple Xiaomi 10) ont des problèmes intrinsèques : après modification de la configuration, ils peuvent ne pas fournir d'image, rendant EasyAR inutilisable (l'application affiche un arrière-plan mais les fonctionnalités EasyAR ne répondent pas). Par conséquent, cette activation n'est généralement pas recommandée. Si vous l'utilisez, prévoyez un plan de secours pour les cas où EasyAR ne fonctionne pas.

Prise en charge des casques

En raison de l'absence d'interfaces de données suffisamment complètes dans l'infrastructure Unity XR, EasyAR ne prend pas en charge les casques via cette infrastructure.

Sur les casques compatibles avec l'infrastructure Unity XR, EasyAR prend en charge l'utilisation de Unity.XR.CoreUtils.XROrigin via XR Core Utilities, mais n'utilise pas Unity XR pour la prise en charge des casques. EasyAR n'affecte pas les fonctionnalités du XR Interaction Toolkit, qui peut être utilisé normalement si l'appareil le supporte.

Généralement, les fabricants de casques fournissent leurs propres SDK ou interfaces système pour ces données. EasyAR prend en charge les casques via les interfaces système et les SDK des fabricants. Parfois, ces SDK ne sont pas entièrement publics ; EasyAR collabore alors avec les fabricants pour fournir une prise en charge complète. Headset support in Unity présente les casques pris en charge par EasyAR et leur mode d'utilisation.

Étapes suivantes

Sujets connexes


  1. Dans Unity 6 et les versions ultérieures, la version minimale est 2.0.4. Dans Unity 2022.3, la version minimale est 1.2.3, les versions 1.3.x ne sont pas prises en charge.