Table of Contents

EasyAR dukungan untuk kerangka kerja Unity XR

EasyAR tidak bergantung pada kerangka kerja Unity XR untuk menyediakan fitur AR, tetapi dapat mendukung beberapa paket komponen dalam kerangka kerja Unity XR, sehingga ketika menggunakan fitur AR EasyAR di Unity, Anda dapat memanfaatkan fungsionalitas yang disediakan oleh kerangka kerja Unity XR. Konten berikut menjelaskan dukungan EasyAR terhadap kerangka kerja Unity XR, serta kapan Anda dapat mempertimbangkan menggunakan AR Foundation.

Dukungan Unity XR

Unity mendukung pengembangan XR melalui kerangka kerja plugin dan serangkaian paket fitur serta toolkit. EasyAR juga mendukung paket komponen Unity XR ini, sehingga ketika menggunakan fitur AR EasyAR di Unity, Anda dapat memanfaatkan fungsionalitas yang disediakan oleh kerangka kerja Unity XR.

EasyAR mendukung paket komponen Unity XR berikut:

Nama tampilan Nama paket Versi dukungan minimum Diperlukan Kegunaan
XR Core Utilities com.unity.xr.core-utils 2.0.0 Tidak Menyediakan dukungan Unity.XR.CoreUtils.XROrigin
AR Foundation com.unity.xr.arfoundation 5.0.0 Tidak Menyediakan dukungan AR Foundation
XR Plugin Management com.unity.xr.management 3.0.0 Tidak Menyediakan kompatibilitas manajemen SDK ARCore dan mendapatkan tipe XR Loader runtime
XR Interaction Toolkit com.unity.xr.interaction.toolkit 2.0.0 Tidak Tidak digunakan secara langsung
PolySpatial visionOS com.unity.polyspatial.visionos 2.0.41 Tidak Tidak digunakan secara langsung
Apple visionOS XR Plugin com.unity.xr.visionos 2.0.41 Tidak Tidak digunakan secara langsung
Apple ARKit XR Plugin com.unity.xr.arkit 5.0.0 Tidak Tidak digunakan secara langsung
Google ARCore XR Plugin com.unity.xr.arcore 5.0.0 Tidak Menyediakan kompatibilitas manajemen SDK ARCore
Catatan

EasyAR tidak bergantung pada kerangka kerja Unity XR untuk menyediakan fitur AR. Oleh karena itu, jika tidak ada kebutuhan untuk menggunakan komponen Unity XR seperti AR Foundation, Anda tidak perlu menginstal paket-paket ini. EasyAR masih akan berfungsi dengan baik di perangkat yang didukung.

Dukungan AR Foundation

AR Foundation adalah kerangka kerja pengembangan AR yang disediakan oleh Unity. Fitur AR-nya diimplementasikan melalui sistem bawaan atau pihak ketiga, dan umumnya digunakan untuk mendukung ARCore, ARKit, serta beberapa headset.

Hubungan antara EasyAR dan 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["EasyAR Sense Unity Plugin"]
    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["EasyAR<br>AR Engine Interop"]
    space
  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["System Library"]
    block:groupSystemWrapper
      space
      AREngine["AR Engine<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      space
      ARCore["ARCore<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      space
      ARKit["ARKit<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&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 dan AR Foundation adalah dua kerangka kerja AR yang independen. EasyAR tidak bergantung pada AR Foundation untuk mengimplementasikan fitur AR-nya. EasyAR juga dapat menggunakan kemampuan pelacakan gerak melalui pustaka sistem seperti ARKit, ARCore, dll. Selain itu, EasyAR menyediakan dua implementasi pelacakan gerak yang tidak dimiliki AR Foundation: implementasi pelacakan gerak EasyAR sendiri dan implementasi yang disediakan oleh AR Engine. Hal ini memberikan dukungan perangkat yang lebih luas dibandingkan AR Foundation.

Secara bersamaan, EasyAR dapat mengambil data runtime AR Foundation dan menggunakan kemampuan pelacakan gerak yang disediakannya untuk menggerakkan fungsi AR lainnya saat runtime AR Foundation berjalan, sehingga memberikan kompatibilitas dengan AR Foundation. Fitur-fitur ini meliputi:

  • Mega
  • Peta ruang jarang (sparse spatial map)
  • Peta ruang padat (dense spatial map)
  • Pelacakan gambar dan objek menggunakan fusi gerak (motion fusion)

Anda dapat merujuk ke Pelacakan gerak dan fungsi EasyAR untuk memahami hubungan antara pelacakan gerak dan fungsi EasyAR secara lebih rinci.

Kapan AR foundation diperlukan

Dalam banyak kasus, AR Foundation tidak diperlukan. EasyAR akan berfungsi dengan baik di perangkat yang lebih luas daripada yang didukung oleh AR Foundation. Biasanya, Anda dapat mempertimbangkan menggunakan AR Foundation dalam dua situasi berikut:

  1. Perlu menggunakan fitur ARKit dan ARCore yang tidak dibungkus oleh EasyAR

    Jika Anda perlu menggunakan beberapa fitur yang disediakan oleh ARCore atau ARKit yang tidak dibungkus dalam EasyAR, Anda dapat menggunakan AR Foundation. Misalnya, AR Foundation menyediakan dukungan untuk pelacakan wajah ARKit ARFaceManager, yang tidak dibungkus oleh EasyAR.

  2. Menggunakan pelacakan gerak yang diimplementasikan oleh ARCore, bukan EasyAR, di beberapa ponsel Xiaomi yang memiliki masalah sistem

    Jika Anda perlu menggunakan ARCore di semua ponsel Xiaomi dan Redmi yang mendukung ARCore, Anda dapat mempertimbangkan untuk mengaktifkan AR Foundation. Karena beberapa ponsel Xiaomi dan Redmi memiliki masalah sistem, pembungkusan ARCore EasyAR tidak mendukung perangkat ini, termasuk seri Mi 9, Mi 10, Redmi K20, Redmi K30, Redmi K40, dll. (daftar di sini tidak lengkap, dukungan perangkat akan terus diperbarui). Di ponsel-ponsel ini, dalam konfigurasi default, ARCore tidak akan digunakan. Di ponsel yang mendukung pelacakan gerak EasyAR, pelacakan gerak EasyAR akan digunakan.

Penggunaan AR Foundation dengan EasyAR tidak memberikan hasil yang optimal. Ada dua situasi:

  1. Di sebagian ponsel Xiaomi dan Redmi yang tidak didukung langsung oleh EasyAR, data yang masuk ke EasyAR adalah gambar skala abu-abu (grayscale) bukan berwarna, yang dapat memengaruhi kinerja beberapa algoritma. Karena masalah pada perangkat itu sendiri, hal ini tidak dapat diselesaikan melalui konfigurasi.
  2. Saat menggunakan Mega, konfigurasi default yang digunakan AR Foundation bukan yang paling optimal.
Hati-Hati

Anda dapat mengubah ARCameraManager.currentConfiguration AR Foundation untuk mendapatkan input data yang lebih baik. Mengaktifkan ARCoreARFoundationFrameSource.OptimizeConfigurationForTracking dapat secara otomatis memilih ARCameraManager.currentConfiguration terbaik. Namun, perlu diperhatikan bahwa beberapa ponsel (seperti Xiaomi 10) memiliki masalah bawaan, dan setelah mengubah konfigurasi, mereka tidak dapat memperoleh gambar. Akibatnya, EasyAR tidak dapat digunakan (aplikasi memiliki latar belakang gambar tetapi fungsi EasyAR tidak merespons sama sekali). Oleh karena itu, biasanya tidak disarankan untuk mengaktifkannya. Jika Anda perlu menggunakannya, pastikan memiliki rencana cadangan (fallback) jika EasyAR tidak dapat berfungsi.

Dukungan headset

Karena kerangka kerja Unity XR tidak menyediakan antarmuka data yang cukup memadai, EasyAR tidak mendukung headset melalui kerangka kerja Unity XR.

Di headset yang mendukung kerangka kerja Unity XR, EasyAR akan mendukung penggunaan Unity.XR.CoreUtils.XROrigin melalui XR Core Utilities, tetapi tidak menggunakan kerangka kerja Unity XR untuk mengimplementasikan dukungan headset. EasyAR tidak akan mengganggu fungsionalitas XR Interaction Toolkit; selama perangkat mendukung, alat ini dapat digunakan secara normal.

Secara umum, produsen headset menyediakan SDK atau antarmuka sistem untuk menyediakan data ini. EasyAR mendukung headset melalui antarmuka sistem dan SDK produsen. Terkadang SDK ini tidak sepenuhnya terbuka, EasyAR akan bekerja sama dengan produsen untuk memberikan dukungan lengkap. Dukungan headset di Unity memperkenalkan headset yang didukung EasyAR dan cara penggunaannya.

Langkah selanjutnya

Topik terkait


  1. Di Unity 6 dan versi lebih baru, dukungan minimum adalah 2.0.4. Di Unity 2022.3, dukungan minimum adalah 1.2.3, versi 1.3.x tidak didukung.