Bagikan melalui


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.

  1. Pastikan platform diatur ke UWP dalam pengaturan build.
  2. 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.

lokasi pemahaman adegan dalam hierarki

Lokasi MRTK di 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.

opsi pengontrol demo

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.

Lokasi Portal Perangkat dari file byte

Byte adegan berseri dalam pengamat

Lihat juga