Table of Contents

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

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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      space
      space
      DeviceB["Device B<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
  
  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 Sense yang ditentukan oleh EasyAR Sense Unity Plugin untuk 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 Sense dapat digunakan pada perangkat Anda, fitur-fitur ini akan memanfaatkan kemampuan pelacakan gerak perangkat Anda.
  • Layanan cloud EasyAR yang didukung di dalam EasyAR Sense dapat 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 Sense juga diperlukan. Di Unity, Anda harus menggunakan EasyAR 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 Plugin tidak 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:

Selain itu, memiliki sedikit pengetahuan di bidang-bidang ini akan membantu Anda lebih memahami sistem, terutama bagaimana mengirim data yang benar ke EasyAR:

Langkah selanjutnya

Dalam artikel berikutnya, Anda akan mempelajari alur lengkap pembuatan paket ekstensi headset:

Topik terkait