Dukungan EasyAR untuk framework Unity XR
EasyAR tidak bergantung pada framework Unity XR untuk menyediakan fungsi AR, tetapi dapat mendukung sebagian package komponen dalam framework Unity XR, sehingga saat menggunakan fungsi AR EasyAR di Unity Anda dapat memanfaatkan kemampuan yang disediakan framework Unity XR. Bagian berikut menjelaskan dukungan EasyAR untuk framework Unity XR dan kapan AR Foundation dapat dipertimbangkan.
Dukungan Unity XR
Unity mendukung pengembangan XR melalui plugin framework serta rangkaian feature package dan toolkit. EasyAR juga mendukung package komponen Unity XR ini, sehingga saat menggunakan fungsi AR EasyAR di Unity Anda dapat memanfaatkan kemampuan yang disediakan framework Unity XR.
EasyAR mendukung package komponen Unity XR berikut:
| Display name | Package name | Versi minimum yang didukung | Diperlukan | Penggunaan |
|---|---|---|---|---|
| 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 ARCore SDK dan memperoleh tipe XR Loader saat 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 ARCore SDK |
Catatan
EasyAR tidak bergantung pada framework Unity XR untuk menyediakan fungsi AR. Karena itu, jika Anda tidak membutuhkan komponen Unity XR seperti AR Foundation, package tersebut tidak perlu diinstal dan EasyAR tetap dapat bekerja normal pada perangkat yang didukung.
Dukungan AR Foundation
AR Foundation adalah framework pengembangan AR yang disediakan Unity. Fungsi AR-nya diimplementasikan melalui sistem dasar atau pihak ketiga, dan sering digunakan untuk mendukung ARCore, ARKit, serta sebagian 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 framework AR yang independen. EasyAR tidak bergantung pada AR Foundation untuk mengimplementasikan fungsi AR-nya. EasyAR juga dapat mengimplementasikan motion tracking melalui library sistem seperti ARKit dan ARCore di sistem. Selain itu, EasyAR menyediakan dua implementasi motion tracking yang tidak dimiliki AR Foundation: implementasi motion tracking EasyAR sendiri dan implementasi motion tracking melalui AR Engine, sehingga memberikan dukungan perangkat yang lebih luas dibandingkan AR Foundation.
Pada saat yang sama, EasyAR dapat memperoleh data runtime AR Foundation dan menggunakan kemampuan motion tracking yang disediakan AR Foundation runtime untuk menjalankan fungsi AR lainnya, sehingga menyediakan kompatibilitas dengan AR Foundation. Fungsi ini mencakup:
- Mega
- Sparse spatial map
- Dense spatial map
- Image tracking dan object tracking yang menggunakan motion fusion
Lihat motion tracking dan fungsi EasyAR untuk memahami hubungan antara motion tracking dan fungsi EasyAR secara lebih rinci.
Kapan perlu menggunakan AR Foundation
Dalam kebanyakan kasus, AR Foundation tidak perlu digunakan; EasyAR dapat bekerja normal pada cakupan perangkat yang lebih luas daripada perangkat yang didukung AR Foundation. Biasanya AR Foundation dapat dipertimbangkan dalam dua situasi berikut:
Perlu menggunakan fungsi ARKit atau ARCore yang belum dibungkus oleh EasyAR
Jika beberapa fungsi ARCore atau ARKit yang diperlukan belum dibungkus di EasyAR, Anda dapat menggunakan AR Foundation. Misalnya, AR Foundation menyediakan dukungan untuk face tracking ARKit melalui ARFaceManager, sedangkan EasyAR tidak membungkus fungsi ini.
Menggunakan ARCore, bukan motion tracking yang diimplementasikan EasyAR, pada sebagian ponsel Xiaomi yang memiliki masalah sistem
Jika perlu menggunakan ARCore pada semua ponsel Xiaomi dan Redmi yang mendukung ARCore, Anda dapat mempertimbangkan untuk mengaktifkan AR Foundation. Karena sebagian sistem ponsel Xiaomi dan Redmi memiliki masalah, pembungkus ARCore EasyAR tidak mendukung perangkat tersebut, termasuk seri Mi 9, Mi 10, Redmi K20, Redmi K30, Redmi K40, dan lainnya (daftar ini tidak lengkap dan dukungan perangkat akan terus diperbarui). Pada ponsel tersebut, ARCore tidak akan digunakan dalam konfigurasi default; pada ponsel yang mendukung EasyAR motion tracking, EasyAR motion tracking akan digunakan.
Saat menggunakan AR Foundation, hasil fungsi EasyAR bukan yang optimal. Ada dua situasi:
- Pada sebagian ponsel Xiaomi dan Redmi yang tidak didukung langsung oleh EasyAR, data yang masuk ke EasyAR adalah gambar grayscale, bukan gambar berwarna, sehingga memengaruhi beberapa algoritme. Karena ini adalah masalah perangkat, hal tersebut tidak dapat diselesaikan melalui konfigurasi.
- Saat menggunakan Mega, konfigurasi default yang digunakan AR Foundation bukan konfigurasi optimal.
Hati-Hati
Data input yang lebih baik dapat diperoleh dengan mengubah ARCameraManager.currentConfiguration milik AR Foundation. Mengaktifkan ARCoreARFoundationFrameSource.OptimizeConfigurationForTracking dapat otomatis memilih ARCameraManager.currentConfiguration terbaik. Namun perlu diperhatikan bahwa beberapa ponsel sendiri (misalnya Mi 10) memiliki masalah: setelah konfigurasi diubah, gambar tidak dapat diperoleh dan EasyAR tidak dapat digunakan (aplikasi memiliki background gambar tetapi fungsi EasyAR tidak bereaksi). Karena itu biasanya tidak disarankan untuk mengaktifkannya; jika harus digunakan, siapkan fallback ketika EasyAR tidak dapat digunakan.
Dukungan headset
Karena framework Unity XR tidak menyediakan interface data yang cukup lengkap, EasyAR tidak mendukung headset melalui framework Unity XR.
Pada headset yang mendukung framework Unity XR, EasyAR akan mendukung penggunaan Unity.XR.CoreUtils.XROrigin melalui XR Core Utilities, tetapi tidak menggunakan framework Unity XR untuk mengimplementasikan dukungan headset. EasyAR tidak memengaruhi fungsi XR Interaction Toolkit; selama perangkat mendukungnya, toolkit tersebut dapat digunakan secara normal.
Secara umum, produsen headset masing-masing menyediakan SDK atau interface sistem untuk menyediakan data ini. EasyAR mendukung headset melalui interface sistem dan SDK produsen. Terkadang SDK tersebut tidak sepenuhnya publik, dan EasyAR akan bekerja sama dengan produsen untuk menyediakan dukungan lengkap. Dukungan headset di Unity memperkenalkan headset yang didukung EasyAR dan cara penggunaannya.
Langkah berikutnya
- Pelajari cara mengaktifkan AR Foundation dalam proyek EasyAR
- Pelajari konfigurasi scene dan penggunaan AR Foundation dalam proyek EasyAR
- Pelajari cara mengalihkan AR Foundation secara otomatis berdasarkan dukungan perangkat