Table of Contents

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

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>&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 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 Sense yang didefinisikan oleh EasyAR Sense Unity Plugin untuk 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 Sense dapat digunakan di perangkat Anda, dan fitur tersebut akan memanfaatkan kemampuan motion tracking perangkat.
  • Layanan cloud EasyAR yang didukung di dalam EasyAR Sense dapat 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 Sense tetap diperlukan. Di Unity, Anda juga harus menggunakan EasyAR 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:

Selain itu, pengetahuan di bidang-bidang berikut akan membantu Anda memahami sistem dengan lebih baik, terutama dalam mengirim data yang benar ke EasyAR:

Langkah berikutnya

Pada artikel berikutnya, Anda akan mempelajari alur lengkap untuk membuat paket ekstensi headset:

Topik terkait