Paket ekstensi headset EasyAR Unity
Dokumen ini menjelaskan konsep, batas kemampuan, dan pengetahuan latar belakang yang diperlukan untuk membuat paket ekstensi headset untuk EasyAR Unity.
Sebelum mulai
- Baca Dukungan headset EasyAR untuk memahami jenis headset yang didukung EasyAR dan fitur EasyAR yang dapat berjalan di headset.
- Baca Dukungan headset EasyAR di Unity untuk memahami arsitektur umum dukungan headset EasyAR di Unity.
Apa itu paket ekstensi headset EasyAR Unity
Paket ekstensi headset EasyAR Unity adalah sebuah Unity package yang berisi serangkaian kode dan contoh untuk membantu Anda menggunakan fitur EasyAR Sense di perangkat headset Anda. Melalui paket ekstensi ini, Anda dapat mengintegrasikan sebagian besar fitur EasyAR Sense, seperti pelacakan gambar dan pemetaan spasial padat, ke perangkat Anda sehingga dapat memanfaatkan kemampuan AR kuat yang disediakan EasyAR.
Menggunakan paket ekstensi headset EasyAR Unity adalah salah satu cara dukungan headset EasyAR. Diagram berikut menunjukkan arsitektur keseluruhan EasyAR di Unity serta posisi paket 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 menampilkan dua pendekatan umum untuk dukungan headset: menghubungkan SDK perangkat melalui paket ekstensi headset Unity (Device A), dan menghubungkan SDK perangkat langsung di dalam pustaka EasyAR Sense (Device B). Dokumen ini terutama membahas pendekatan pertama.
Bisakah saya membuat paket ekstensi headset sendiri?
Saat ini, industri AR/VR/MR/XR belum memiliki solusi antarmuka yang benar-benar seragam. OpenXR memang kandidat yang kuat, tetapi evolusi spesifikasi dan implementasi industri masih membutuhkan waktu. Karena itu, menjalankan EasyAR langsung pada perangkat komersial biasanya tidaklah mudah; besar kemungkinan ada antarmuka data yang belum tersedia. Seiring perkembangan industri, beberapa perangkat baru mungkin memiliki dukungan antarmuka yang baik. Misalnya, pada tahun 2024, Apple membuka antarmuka terkait Vision Pro yang sudah cukup untuk mendukung EasyAR, meski penggunaannya tetap membutuhkan pengetahuan khusus.
Jika Anda tidak bisa menilai sendiri, disarankan untuk menghubungi produsen perangkat keras atau bisnis EasyAR untuk mendapatkan dukungan perangkat yang sesuai.
Jika Anda adalah produsen perangkat keras dan ingin mendukung fitur EasyAR di perangkat Anda, Anda dapat merujuk pada dokumentasi berikut untuk membuat paket ekstensi headset, sehingga sebagian besar fitur EasyAR dapat berjalan di perangkat Anda. Dokumen ini menyediakan spesifikasi data dan antarmuka, tetapi tidak membatasi seluruh detail implementasi. Apa pun pendekatan implementasi atau definisi antarmuka dapat didiskusikan; silakan hubungi kami melalui jalur bisnis.
Perangkat keras yang dicakup oleh dokumen ini harus memiliki kemampuan motion tracking atau SLAM. Fitur EasyAR bergantung pada pelacakan perangkat yang baik. Umumnya tidak disarankan mengandalkan fitur EasyAR untuk mengoptimalkan tracking perangkat, karena itu akan menciptakan ketergantungan melingkar yang secara teori dapat memperbesar error dan membuat sistem keseluruhan menjadi tidak stabil. Jika perangkat itu sendiri tidak memiliki kemampuan motion tracking, solusi dukungannya berada di luar cakupan dokumen ini. Silakan hubungi kami melalui jalur bisnis jika diperlukan.
Batas kemampuan paket ekstensi headset
Tujuan paket ekstensi headset adalah agar sebagian besar fitur EasyAR Sense dapat berjalan di perangkat Anda. Untuk mencapai tujuan ini, Anda perlu memahami batas kemampuan paket ekstensi headset.
Isi paket ekstensi headset
Ekstensi yang akan Anda implementasikan adalah:
- Serangkaian kode yang menggunakan fitur custom camera untuk mengambil data dari API perangkat Anda dan mengirimkannya ke
EasyAR Sense. - Di Unity, ekstensi headset akan menggunakan external frame data source dan serangkaian alur data
EasyAR Senseyang didefinisikan olehEasyAR Sense Unity Pluginuntuk menyederhanakan pengembangan custom camera. - Di Unity, ekstensi headset adalah sebuah Unity package yang berisi skrip runtime, skrip editor, dan sample ekstensi, yang dapat Anda atau EasyAR distribusikan ke pengguna hilir.
Kiat
Jika Anda tidak ingin detail integrasi terekspos ke sistem eksternal, Anda dapat menghubungi EasyAR untuk berdiskusi. Menghubungkan secara langsung di dalam EasyAR Sense menggunakan antarmuka C itu memungkinkan dan sudah pernah dilakukan.
Saat mengimplementasikan ekstensi, Anda mungkin akan:
- Mengubah desain antarmuka dan implementasi internal SDK Anda.
- Berdiskusi dengan tim Anda untuk mengonfirmasi cara memperoleh dan menggunakan data.
- Menghabiskan banyak waktu untuk memverifikasi kebenaran data daripada menulis kode.
Setelah ekstensi selesai, Anda akan melihat:
- Sebagian besar fitur
EasyAR Sensedapat digunakan di perangkat Anda, dan fitur tersebut akan memanfaatkan kemampuan motion tracking perangkat. - Layanan cloud EasyAR yang didukung di dalam
EasyAR Sensedapat digunakan di perangkat Anda. - Hanya lisensi EasyAR XR yang dapat digunakan. Lisensi personal, professional, dan classic tidak dapat digunakan di perangkat Anda.
- Semua batasan lisensi EasyAR saat menggunakan custom camera berlaku dengan cara yang sama di perangkat Anda.
Isi yang tidak termasuk dalam paket ekstensi headset
Ekstensi ini tidak dapat digunakan terpisah dari EasyAR Sense:
- Ekstensi headset ini tidak berjalan sendiri. Sebagai dependensi,
EasyAR Sensetetap diperlukan. Di Unity, Anda juga harus menggunakanEasyAR Sense Unity Plugin. - Ekstensi ini tidak akan langsung memanggil API layanan cloud EasyAR.
Bagaimana cara menggunakan Mega di perangkat saya?
Menjalankan Mega di perangkat adalah hal yang banyak dipedulikan pengguna. Di Unity, layanan Mega adalah modul fitur yang berjalan di atas banyak fungsi dasar EasyAR Sense, jadi selama perangkat Anda mendukung EasyAR Sense sepenuhnya, maka Mega juga akan didukung.
Secara umum, tidak disarankan langsung menjalankan contoh Mega di perangkat pada tahap awal untuk memverifikasi dukungan Mega. Hal ini karena Mega menggunakan semua data input secara gabungan dan memiliki toleransi error yang cukup besar terhadap data tersebut. Menjalankan contoh Mega secara langsung sangat mungkin gagal menghasilkan hasil yang masuk akal akibat ketidakcocokan antarmuka data atau kualitas data yang buruk, dan masalahnya menjadi sulit dilacak. Ini akan menyulitkan debugging di kemudian hari.
Penting
Layanan Mega memiliki persyaratan tertentu terhadap kemampuan motion tracking perangkat. Jika kemampuan motion tracking perangkat buruk, performa Mega juga akan terpengaruh. Dalam skenario AR skala besar, perbedaan performa antara dalam ruangan dan luar ruangan juga perlu diperhatikan.
Penting
Mega umumnya digunakan untuk skenario ruang besar, jadi Anda perlu sangat memperhatikan efek tampilan objek jauh serta objek yang berada di luar pusat pandangan atau saat kepala bergerak. Jika error pada sistem tampilan perangkat cukup besar, pengguna akan merasa objek virtual tidak menempel dengan benar pada objek nyata, meskipun Mega sendiri berjalan normal.
Pengetahuan latar belakang dan konfigurasi tim yang dibutuhkan
Membuat paket ekstensi headset bukan tugas yang sederhana. Anda dan tim Anda perlu melakukan pekerjaan mendalam di beberapa bidang. Secara umum, untuk menyelesaikan ekstensi headset, Anda perlu melibatkan orang-orang di luar pengembangan Unity. Karena kurangnya standar, hanya memodifikasi di atas engine 3D biasanya tidak cukup. Disarankan sejak hari pertama untuk melibatkan engineer sistem, engineer SDK, dan engineer pengembangan lapisan bawah lainnya.
Membangun perangkat AR/VR membutuhkan pengetahuan domain. Demikian pula, menjalankan dan memverifikasi EasyAR Sense di perangkat akan menuntut 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 (Daratan Tiongkok, internasional)
Jika Anda bekerja di Unity, Anda juga perlu mengetahui hal-hal berikut:
- Dasar pengembangan Unity dan penggunaan package
- Pengembangan Unity package
- Dasar bahasa C#, termasuk IDisposable
Selain itu, pengetahuan di bidang-bidang berikut akan membantu Anda memahami sistem dengan lebih baik, terutama dalam mengirim data yang benar ke EasyAR:
- Pengembangan Android (Daratan Tiongkok, internasional)
- Geometri visi, terutama pencocokan gambar dan rekonstruksi 3D
Langkah berikutnya
Pada artikel berikutnya, Anda akan mempelajari alur lengkap untuk membuat paket ekstensi headset:
- Mengaktifkan dukungan headset untuk EasyAR menjelaskan cara menggunakan template untuk membuat paket ekstensi headset baru dan menyelesaikan pengembangan dasar input extension
- Verifikasi bring-up menjelaskan cara memverifikasi kebenaran input extension di perangkat
- Menerbitkan paket ekstensi menjelaskan cara mengemas dan mendistribusikan paket ekstensi headset ke pengguna hilir