Pengamat pemahaman adegan — MRTK2
Scene Understanding mengembalikan representasi semantik entitas adegan serta formulir geometrisnya pada HoloLens 2 (HoloLens Gen 1st tidak didukung).
Beberapa kasus penggunaan yang diharapkan dari teknologi ini adalah:
- Tempatkan objek di permukaan terdekat dari jenis tertentu (misalnya dinding dan lantai)
- Membangun nav-mesh untuk game gaya platform
- Menyediakan geometri ramah mesin fisika sebagai quads
- Mempercepat pengembangan dengan menghindari kebutuhan untuk menulis algoritma serupa
Scene Understanding diperkenalkan sebagai fitur eksperimental di MRTK 2.6. Ini diintegrasikan ke dalam MRTK sebagai pengamat spasial yang disebut WindowsSceneUnderstandingObserver
. Pemahaman Adegan berfungsi baik dengan alur XR Warisan dan alur XR SDK (baik OpenXR (mulai dari MRTK 2.7) dan Plugin Windows XR). Dalam kedua kasus, WindowsSceneUnderstandingObserver
digunakan.
Catatan
Menggunakan Scene Understanding di Remoting hanya didukung di MRTK 2.7.3 ke atas. Hanya proyek yang menggunakan OpenXR yang didukung. Proyek yang menggunakan alur XR Warisan atau Plugin Windows XR tidak didukung.
Gambaran umum pengamat
Ketika ditanya, WindowsSceneUnderstandingObserver
akan mengembalikan SpatialAwarenessSceneObject dengan atribut yang berguna bagi aplikasi untuk memahami lingkungannya. Frekuensi pengamatan, jenis objek yang dikembalikan (misalnya dinding, lantai) dan perilaku pengamat lainnya tergantung pada konfigurasi pengamat melalui profil. Misalnya, jika masker oklusi diinginkan, pengamat harus dikonfigurasi untuk menghasilkan quad. Adegan yang diamati dapat disimpan sebagai file serial yang nantinya dapat dimuat untuk membuat ulang adegan dalam mode putar editor.
Siapkan
Penting
Pemahaman Adegan hanya didukung pada HoloLens 2 dan Unity 2019.4 dan yang lebih tinggi.
- Pastikan platform diatur ke UWP dalam pengaturan build.
- Dapatkan paket Scene Understanding melalui Alat Fitur Mixed Reality.
Menggunakan Pemahaman Adegan
Cara tercepat untuk memulai Scene Understanding adalah dengan memeriksa adegan sampel.
Adegan Memahami adegan sampel
Di Unity, gunakan Project Explorer untuk membuka file adegan dan Examples/Experimental/SceneUnderstanding/Scenes/SceneUnderstandingExample.unity
tekan putar!
Penting
Hanya berlaku untuk MRTK 2.6.0 - Saat menggunakan Alat Fitur Mixed Reality atau mengimpor melalui UPM, harap impor sampel Demos - SpatialAwareness sebelum mengimpor sampel Experimental - SceneUnderstanding karena masalah dependensi. Silakan lihat masalah GitHub ini untuk informasi lebih lanjut.
Adegan menunjukkan hal-hal berikut:
- Visualisasi Objek Adegan yang diamati dengan di UI aplikasi untuk mengonfigurasi pengamat
- Contoh
DemoSceneUnderstandingController
skrip yang menunjukkan cara mengubah pengaturan pengamat dan mendengarkan peristiwa yang relevan - Menyimpan data adegan ke perangkat untuk pengembangan offline
- Memuat data adegan yang disimpan sebelumnya (file.bytes) untuk mendukung alur kerja pengembangan dalam editor
Penting
Secara default ShouldLoadFromFile
properti pengamat diatur ke false. Untuk melihat visualisasi ruang sampel berseri, silakan lihat bagian mengonfigurasi layanan pengamat di bawah ini dan atur properti ke true di editor.
Catatan
Adegan sampel didasarkan pada alur XR Warisan. Jika Anda menggunakan alur XR SDK, Anda harus memodifikasi profil yang sesuai. Profil Sistem Kesadaran Spasial Pemahaman Adegan yang disediakan (DemoSceneUnderstandingSystemProfile
) dan profil Pengamat Pemahaman Adegan (DefaultSceneUnderstandingObserverProfile
dan DemoSceneUnderstandingObserverProfile
) berfungsi untuk kedua alur.
Catatan
Adegan sampel mencatat peringatan dalam keadaan tertentu karena urutan eksekusi inisialisasi There is no active AsyncCoroutineRunner when an action is posted.
/utas. Jika Anda dapat mengonfirmasi AsyncCoroutineRunner
bahwa komponen dilampirkan ke GameObject "Pengontrol Demo" dan komponen/GameObject tetap diaktifkan/aktif di adegan (kasus default), peringatan dapat diabaikan dengan aman.
Namun, saat membuat adegan baru dengan Scene Understanding, pastikan untuk membuat GameObject kosong di root dan melampirkan AsyncCoroutineRunner
skrip ke dalamnya, jika tidak, Scene Understanding mungkin tidak berfungsi dengan baik.
Mengonfigurasi layanan pengamat
Pilih objek game 'MixedRealityToolkit' dan periksa inspektur.
Opsi ini akan memungkinkan seseorang untuk mengonfigurasi WindowsSceneUnderstandingObserver
.
Contoh skrip
Contoh skrip DemoSceneUnderstandingController.cs menunjukkan konsep utama dalam bekerja dengan layanan Scene Understanding.
- Berlangganan peristiwa Pemahaman Adegan
- Menangani peristiwa Scene Understanding
- Mengonfigurasi saat
WindowsSceneUnderstandingObserver
runtime
Pengalih pada panel dalam adegan mengubah perilaku pengamat pemahaman adegan dengan memanggil fungsi publik dari skrip sampel ini.
Mengaktifkan Instantiate Prefabs, akan menunjukkan pembuatan objek yang berukuran sesuai dengan semua SpatialAwarenessSceneObject, yang dikumpulkan dengan rapi di bawah objek induk.
Catatan aplikasi bawaan
Bangun dan sebarkan ke HoloLens dengan cara standar. Setelah berjalan, sejumlah tombol akan tampak bermain dengan fitur.
Perhatikan, ada beberapa lubang yang jatuh dalam membuat kueri kepada pengamat. Kesalahan konfigurasi permintaan pengambilan mengakibatkan payload peristiwa Anda tidak berisi data yang diharapkan. Misalnya, jika seseorang tidak meminta quad, maka tidak ada tekstur masker oklusi yang akan ada. Seperti bijak, tidak ada jala dunia yang akan muncul jika pengamat tidak dikonfigurasi untuk meminta jala.
DemoSceneUnderstandingController
Skrip mengurus beberapa dependensi ini, tetapi tidak semua.
File adegan yang disimpan dapat diakses melalui portal perangkat di User Folders/LocalAppData/[APP_NAME]/LocalState/PREFIX_yyyyMMdd_hhmmss.bytes
. File adegan ini dapat digunakan dalam editor dengan menentukannya di profil pengamat yang ditemukan di inspektur.