Paket ekstensi headset EasyAR Unity
Dokumen ini menjelaskan konsep paket ekstensi headset EasyAR Unity, batas kemampuannya, serta pengetahuan latar belakang yang dibutuhkan untuk membuat paket ekstensi headset.
Sebelum memulai
- Baca Dukungan headset EasyAR untuk memahami jenis headset yang didukung oleh EasyAR dan fitur EasyAR yang dapat dijalankan di headset.
- Baca Dukungan headset EasyAR di Unity untuk memahami arsitektur keseluruhan dukungan headset EasyAR di Unity.
Apa itu easyar unity headset extension package
EasyAR Unity headset extension package adalah sebuah Unity package yang berisi serangkaian kode dan contoh untuk membantu Anda menggunakan fungsionalitas EasyAR Sense pada perangkat headset Anda. Melalui ekstensi ini, Anda dapat mengintegrasikan sebagian besar fitur EasyAR Sense (seperti pelacakan gambar, peta ruang padat, dll.) ke dalam perangkat Anda, sehingga memanfaatkan kemampuan AR yang kuat dari EasyAR.
Menggunakan EasyAR Unity headset extension package adalah salah satu cara dukungan headset EasyAR. Diagram di bawah ini menunjukkan arsitektur keseluruhan EasyAR di Unity serta posisi ekstensi headset di dalamnya.
block
columns 4
block:groupApp:4
block:groupAppWrapper
space
App1["EasyAR + Device A<br>App"]
space
App2["EasyAR<br>App"]
space
App3["EasyAR + Device B<br>App"]
end
end
block:groupSensePluginExtension
columns 1
SensePluginExtension["EasyAR Sense Unity Plugin<br>Extension for Device A"]
space
end
block:groupSensePlugin
columns 1
SensePlugin["EasyAR Sense Unity Plugin"]
space
end
block:groupXRI
columns 1
XRI["XR Interaction Toolkit"]
space
end
block:groupARF
columns 1
ARF["AR Foundation"]
space
end
block:groupDeviceAUnity
columns 1
DeviceAUnity["Device A<br>Unity SDK"]
space
end
block:groupSense
columns 1
Sense["EasyAR Sense"]
block:groupSenseWrapper
MDeviceB["Device B<br>CameraDevice"]
Others["..."]
end
end
block:groupXRSubsystem:2
columns 1
XRSubsystem["XR Subsystems"]
XRSDK["Unity XR SDK"]
end
block:groupSystem:4
columns 1
System["Native Library"]
block:groupSystemWrapper
space
DeviceA["Device A<br> Library "]
space
space
DeviceB["Device B<br> Library "]
space
end
end
SensePluginExtension --> App1
SensePlugin --> App1
SensePlugin --> App2
SensePlugin --> App3
ARF --> App3
XRI --> App1
XRI --> App3
groupSense --> SensePlugin
groupDeviceAUnity --> SensePluginExtension
SensePlugin --> SensePluginExtension
DeviceA --> groupDeviceAUnity
DeviceA --> XRSDK
XRSubsystem --> ARF
XRSubsystem --> XRI
DeviceB --> MDeviceB
DeviceB --> 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 DeviceAUnity fill:none,stroke:none,stroke-width:0px
style Sense fill:none,stroke:none,stroke-width:0px,color
style groupSenseWrapper fill:none,stroke:none,stroke-width:0px
style XRSubsystem fill:none,stroke:none,stroke-width:0px
style System fill:none,stroke:none,stroke-width:0px
style groupSystemWrapper fill:none,stroke:none,stroke-width:0px
style groupSensePluginExtension fill:none,stroke:none,stroke-width:0px
classDef EasyAR fill:#6e6ce6,stroke:#333,color:#fff
class SensePluginExtension EasyAR
Diagram ini mencantumkan dua mode tipikal dukungan headset: menghubungkan ke SDK perangkat melalui Unity headset extension package (Device A), dan menghubungkan langsung ke SDK perangkat dalam library EasyAR Sense (Device B). Dokumen ini terutama membahas mode pertama.
Dapatkah saya membuat paket ekstensi headset saya sendiri?
Saat ini, industri AR/VR/MR/XR belum memiliki skema antarmuka yang sangat terstandarisasi. Meskipun OpenXR adalah kandidat yang bagus, evolusi spesifikasi dan implementasi industri masih membutuhkan waktu. Oleh karena itu, biasanya tidak mudah menjalankan EasyAR langsung pada perangkat yang dijual di pasaran, dan kemungkinan besar terdapat ketiadaan antarmuka data. Seiring perkembangan industri, beberapa perangkat baru mungkin memiliki dukungan antarmuka yang baik. Misalnya, pada tahun 2024, Apple membuka akses ke antarmuka terkait Vision Pro, yang sudah cukup untuk mendukung operasi EasyAR, meskipun penggunaannya masih memerlukan beberapa keahlian khusus.
Jika Anda tidak dapat menentukan, disarankan untuk menghubungi produsen perangkat keras atau bisnis EasyAR untuk mendapatkan dukungan perangkat yang sesuai.
Jika Anda adalah produsen perangkat keras dan ingin mendukung fungsionalitas EasyAR pada perangkat Anda, Anda dapat merujuk ke konten dokumen selanjutnya untuk membuat paket ekstensi headset, sehingga sebagian besar fitur EasyAR dapat berjalan di perangkat Anda. Dokumen ini menyediakan spesifikasi data dan antarmuka tanpa membatasi semua detail implementasi. Setiap metode implementasi atau definisi antarmuka dapat didiskusikan, silakan hubungi melalui saluran bisnis untuk berkomunikasi.
Perangkat keras yang dicakup oleh dokumen ini harus memiliki kemampuan pelacakan gerak atau SLAM. Fungsi EasyAR perlu berjalan di atas kemampuan pelacakan perangkat yang baik. Umumnya tidak disarankan untuk mengandalkan fungsi EasyAR untuk mengoptimalkan pelacakan perangkat, karena ini dapat menciptakan ketergantungan sirkular yang secara teori akan mengamplifikasi kesalahan dan menyebabkan ketidakstabilan sistem secara keseluruhan. Jika perangkat itu sendiri tidak memiliki kemampuan pelacakan gerak, maka skema dukungan tidak tercakup dalam dokumen ini. Jika diperlukan, silakan berkomunikasi melalui saluran bisnis.
Batas kemampuan paket ekstensi head-mounted
Tujuan paket ekstensi head-mounted adalah memungkinkan sebagian besar fungsi EasyAR Sense berjalan di perangkat Anda. Untuk mencapai tujuan ini, Anda perlu memahami batas kemampuan paket ekstensi head-mounted.
Konten yang termasuk dalam paket ekstensi headset
Ekstensi yang akan Anda implementasikan adalah:
- Serangkaian kode yang menggunakan fitur kamera kustom untuk mengambil data dari API perangkat Anda dan mengirimkannya ke
EasyAR Sense. - Di Unity, ekstensi headset akan menggunakan sumber data frame eksternal dan aliran data
EasyAR Senseyang ditentukan olehEasyAR Sense Unity Pluginuntuk menyederhanakan pengembangan kamera kustom. - Di Unity, ekstensi headset adalah sebuah Unity package yang berisi skrip runtime, skrip editor, dan sampel ekstensi, yang dapat Anda atau EasyAR distribusikan ke pengguna hilir.
Kiat
Jika Anda tidak ingin mengekspos detail integrasi ke sistem eksternal, Anda dapat menghubungi EasyAR untuk berdiskusi. Integrasi langsung menggunakan antarmuka-C di dalam EasyAR Sense dimungkinkan dan memiliki preseden.
Saat mengimplementasikan ekstensi, Anda mungkin akan:
- Memodifikasi desain antarmuka dan implementasi internal SDK Anda.
- Berdiskusi dengan tim Anda untuk mengonfirmasi skema akuisisi dan penggunaan data.
- Menghabiskan banyak waktu untuk memvalidasi kebenaran data daripada menulis kode.
Setelah menyelesaikan ekstensi, Anda akan melihat:
- Sebag besar fitur
EasyAR Sensedapat digunakan pada perangkat Anda, fitur-fitur ini akan memanfaatkan kemampuan pelacakan gerak perangkat Anda. - Layanan cloud EasyAR yang didukung di dalam
EasyAR Sensedapat digunakan pada perangkat Anda. - Hanya lisensi EasyAR XR yang dapat digunakan. Lisensi versi Personal, Professional, dan Classic tidak dapat digunakan pada perangkat Anda.
- Semua batasan lisensi EasyAR saat menggunakan kamera kustom berlaku dengan cara yang sama untuk perangkat Anda.
Yang tidak termasuk dalam paket ekstensi headset
Ekstensi ini tidak dapat digunakan tanpa EasyAR Sense:
- Ekstensi headset tidak akan berjalan secara mandiri. Sebagai dependensi,
EasyAR Sensejuga diperlukan. Di Unity, Anda harus menggunakanEasyAR Sense Unity Plugin. - Ia tidak akan secara langsung memanggil API layanan cloud EasyAR (seperti layanan pemosisian EasyAR Mega). Pemanggilan ini akan dilakukan di dalam
EasyAR Sense. - Di Unity, ia tidak akan secara langsung memanggil metode antarmuka untuk fungsi AR (seperti pelacakan gambar). Hal ini dilakukan di dalam
EasyAR Sense Unity Plugin. - Di Unity, ia tidak akan memodifikasi transform objek di scene atau target pelacakan. Hal ini dilakukan di dalam
EasyAR Sense Unity Plugin.
Ekstensi ini tidak dapat digunakan tanpa SDK perangkat Anda:
- Di Unity, ekstensi headset atau
EasyAR Sense Unity Plugintidak akan memodifikasi transform kamera di scene. Ini harus dilakukan di SDK perangkat Anda atau jalur dependensinya.
Melalui ekstensi headset, beberapa fungsi EasyAR tetap tidak dapat digunakan:
- Fungsi pelacakan permukaan tidak akan dapat digunakan.
- Pelacakan gerak bawaan EasyAR tidak akan dapat digunakan.
- Deteksi bidang (bagian dari pelacakan gerak EasyAR) tidak akan dapat digunakan.
Cara menggunakan mega di perangkat saya?
Menjalankan Mega di perangkat adalah perhatian banyak pengguna. Di Unity, layanan Mega adalah modul fungsional yang berjalan di atas banyak fungsi dasar EasyAR Sense. Jadi, selama perangkat Anda sepenuhnya mendukung EasyAR Sense, maka Mega juga akan didukung.
Secara umum, tidak disarankan untuk langsung menjalankan contoh Mega di perangkat di awal untuk memverifikasi dukungan perangkat terhadap Mega. Mega memanfaatkan semua data input secara komprehensif, dan toleransinya terhadap kesalahan data ini relatif besar. Menjalankan contoh Mega langsung kemungkinan besar akan menghasilkan kinerja yang tidak masuk akal karena ketidakcocokan antarmuka data atau kualitas data yang buruk, dan sulit untuk menentukan di mana letak masalahnya. Ini akan menyulitkan debugging di kemudian hari.
[!PENTING] Layanan Mega memiliki persyaratan tertentu terhadap kemampuan pelacakan gerak perangkat. Jika kemampuan pelacakan gerak perangkat buruk, maka kinerja Mega juga akan terpengaruh. Dalam skenario AR skala besar, perhatian khusus juga diperlukan pada perbedaan kinerja di dalam dan di luar ruangan.
[!PENTING] Mega umumnya melayani skenario ruang besar, oleh karena itu perlu perhatian ekstra pada efek tampilan objek jarak jauh serta objek saat memutar kepala atau bergerak. Jika sistem tampilan perangkat memiliki kesalahan yang besar, maka meskipun Mega itu sendiri berjalan normal, pengguna akan merasa objek virtual tidak dapat menempel dengan benar pada objek dunia nyata.
Pengetahuan latar belakang yang dibutuhkan dan konfigurasi tim
Membuat paket ekstensi headset bukanlah tugas sederhana, membutuhkan Anda dan tim Anda untuk melakukan pekerjaan mendalam di beberapa bidang. Secara umum, untuk menyelesaikan ekstensi headset, diperlukan keterlibatan pengembangan Unity sekaligus mengerahkan personel tim di luar pengembangan Unity. Karena kurangnya standar, modifikasi hanya pada mesin 3D biasanya tidak dapat menyelesaikan ekstensi headset, disarankan agar insinyur pengembangan tingkat rendah seperti insinyur sistem dan insinyur SDK dilibatkan sejak hari pertama.
Membangun perangkat AR/VR memerlukan beberapa pengetahuan domain, demikian pula, menjalankan dan memvalidasi EasyAR Sense di perangkat akan mengharuskan Anda atau tim Anda menjadi ahli di bidang-bidang berikut:
- Struktur fisik dan sistem rendering perangkat Anda
- Geometri sistem kamera
- Pengembangan SDK
- Keterampilan debug Android umum, seperti adb (Tiongkok Daratan, Internasional)
Jika Anda bekerja di Unity, Anda juga perlu mengetahui hal-hal berikut:
- Dasar pengembangan Unity dan penggunaan package
- Pengembangan package Unity
- Dasar bahasa C#, termasuk IDisposable dll.
Selain itu, memiliki sedikit pengetahuan di bidang-bidang ini akan membantu Anda lebih memahami sistem, terutama bagaimana mengirim data yang benar ke EasyAR:
- Pengembangan Android (Tiongkok Daratan, Internasional)
- Visi geometri, terutama pencocokan gambar dan rekonstruksi 3D
Langkah selanjutnya
Dalam artikel berikutnya, Anda akan mempelajari alur lengkap pembuatan paket ekstensi headset:
- Membuat headset mendukung EasyAR memperkenalkan cara menggunakan template untuk membuat paket ekstensi headset baru dan menyelesaikan pengembangan ekstensi input dasar
- Running validation (bring-up) memperkenalkan cara memverifikasi kebenaran ekstensi input di perangkat
- Menerbitkan ekstensi memperkenalkan cara mengemas paket ekstensi headset dan mendistribusikannya kepada pengguna hilir