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> Library "]
space
ARCore["ARCore<br> Library "]
space
ARKit["ARKit<br> Library "]
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:
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.
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:
- 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.
- 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
- Pelajari cara mengaktifkan AR Foundation di proyek EasyAR
- Pelajari konfigurasi dan penggunaan adegan (scene) AR Foundation di proyek EasyAR
- Pelajari cara beralih secara otomatis ke AR Foundation berdasarkan dukungan perangkat