Bagikan melalui


Alat dan visualizer

Alat dan visualizer di namespace Microsoft.MixedReality.WorldLocking.Tools dimaksudkan untuk membantu selama pengembangan. Mereka mungkin juga menjadi titik awal untuk interaksi langsung tingkat lanjut dengan sistem World Locking Tools (WLT).

Meskipun tidak ditujukan untuk penggunaan langsung seperti dalam aplikasi, pengembang aplikasi bebas memilih untuk melakukannya.

WorldLocking.Core dimaksudkan untuk bekerja apa adanya dalam skenario aplikasi yang sesuai. Namun, Alat dapat membuat asumsi tentang aplikasi. Asumsi-asumsi ini dapat membuat mereka tidak pantas dalam beberapa situasi.

Sebelum menggabungkan salah satu alat langsung dalam aplikasi pengiriman Anda, pertimbangkan untuk membuat versi alat yang disesuaikan untuk kebutuhan dan sumber daya Anda sendiri.

Alat

Penyesuaian

Penyesuaian adalah komponen yang menangani peristiwa refit. Secara khusus, mereka membuat Titik Lampiran. Jika terjadi operasi refit, AttachmentPoint berfungsi sebagai panggilan balik pemberitahuan. Penyesuaian menangani peristiwa tersebut dengan tepat.

Lihat diskusi konseptual lebih lanjut tentang AttachmentPoints.

Reaksi yang tepat terhadap peristiwa refit akan bervariasi untuk berbagai jenis objek, dan sangat spesifik untuk aplikasi. Misalnya, jika Fragmen objek saat ini tidak aktif, maka haruskah objek ditampilkan? Untuk beberapa aplikasi, karena penempatan objek yang tepat tidak dapat ditentukan, itu harus disembunyikan. Untuk aplikasi lain, mungkin lebih baik menampilkan objek dalam pose yang salah sementara daripada menderita kebingungan hilangnya. Dan bahkan untuk aplikasi yang harus menyembunyikan objek, ada berbagai cara untuk melakukan persembunyian (misalnya, menonaktifkan versus bergerak jauh).

Komponen AdjusterFixed dan AdjusterMoving menangani dua skenario umum secara minimal.

Komponen AdjusterFixed mengasumsikan bahwa targetnya umumnya tidak bergerak. Jika Alat Penguncian Dunia mengirimkan pose penyesuaian karena peristiwa refit, itu dimaksudkan untuk menjaga stasioner objek AdjusterFixed di dunia.

Sebaliknya, komponen AdjusterMoving mengasumsikan bahwa targetnya bergerak melalui ruang koordinat Unity. Ini membuat sistem World Locking Tools dinilai dari lokasi targetnya, sehingga jika terjadi operasi refit, sistem dapat memberikan koreksi yang paling akurat untuk menjaga posisi target relatif terhadap konstanta dunia fisik pada saat itu.

Adapter

Komponen Adapter hanya ditujukan untuk ilustrasi. Jika Anda menemukan diri Anda menggunakan salah satu Adapter, Anda mungkin harus memikirkan kembali bagaimana Anda mencoba menggunakan Alat Penguncian Dunia.

Secara khusus, MRTK sudah memiliki adaptor bawaan, sehingga tidak ada transformasi sistem koordinat lebih lanjut yang diperlukan pada bagian aplikasi.

Mungkin ada waktu, terutama jika tidak menggunakan MRTK, ketika konversi dari sumber daya asli, yang akan melaporkan dalam koordinat Spongy Space, ke Ruang Beku. Dalam kasus tersebut, pengembang aplikasi mungkin menemukan salah satu Adapter yang disertakan di sini untuk menjadi referensi yang baik.

  • WorldAnchorAdapter - WorldAnchor akan menyesuaikan pose objek di ruang Spongy untuk tetap berada di ruang fisik. Ini berlebihan dengan ruang yang dikunci di dunia yang disediakan oleh Alat Penguncian Dunia, sehingga objek akan melayang di Ruang Beku. Adaptor ini memungkinkan WorldAnchor untuk mempertahankan pose objek di Ruang Beku. Ini tidak perlu kecuali untuk diagnostik. Semua objek di ruang koordinat global Unity dikunci di dunia oleh World Locking Tools.

  • ToggleWorldAnchor - Mirip dengan WorldAnchorAdapter, tetapi dapat diubah. Juga secara otomatis dikonversi ke perilaku WorldAnchor reguler ketika WorldLockingManager dinonaktifkan. Hanya berguna untuk diagnostik.

  • FrozenSpatialMapping - Adaptor mengelola dan merender hasil dari SurfaceObserver dengan benar. Sistem Kesadaran Spasial MRTK menyediakan semua fungsionalitas ini dan banyak lagi, dan tidak memerlukan adaptor untuk bekerja dengan Alat Penguncian Dunia.

  • FrozenTapToAdd - Berinteraksi langsung dengan sistem Input Unity memerlukan konversi data koordinat masuk seperti yang ditunjukkan di sini. Ini tidak perlu dengan sistem input MRTK.

Visualizer

Visualisasi Grafik Jangkar

AnchorGraphVisual dan prefab terkait adalah inti dari visualisasi yang disediakan. Bagian komponennya adalah sebagai berikut:

  1. Sumbu - Pose saat ini untuk asal-usul Spongy Space (hijau) dan Ruang Beku (biru) ditampilkan sebagai pengidentifikasi sumbu panah standar 3.

  2. Spongy Anchors - Ini adalah jangkar asli yang mendasar yang telah dibuat untuk memberi makan pengoptimalan Mesin Dunia Beku. Masing-masing diwakili oleh cincin, bersama dengan tag teks yang mengidentifikasinya. Selain itu, informasi lebih lanjut disampaikan oleh warna dan ukuran.

    • Jangkar terlacak aktif akan berwarna hijau.

    • Jangkar terlacak dengan relevansi nol akan berwarna merah.

    • Jangkar yang tidak didukung akan berwarna kuning.

    • Semakin besar cincin, semakin besar relevansi untuk jangkar itu.

  3. Jangkar Beku - Ini adalah titik referensi yang sesuai di Ruang Beku. Dengan tidak adanya kesalahan pelacak, ini akan selaras dengan Spongy Anchors.

  4. Spongy-Frozen Edges - Ini menghubungkan Spongy Anchors ke Frozen Anchors yang sesuai. Karena dengan tidak adanya kesalahan pelacak, ini akan bertepatan, tidak melihat tepi ini berarti semuanya bekerja dengan sempurna. Bagaimanapun, tepi ini tidak boleh lebih panjang dari beberapa sentimeter. Mereka merah di ujung beku. Warna memudar menjadi biru di ujung spons.

  5. Anchor Edges - Garis biru-abu-abu tipis ini menunjukkan koneksi antara Spongy Anchors dalam grafik jangkar.

Grafik jangkar khas melintas ruangan

Mengaktifkan tampilan grafik jangkar yang dihasilkan Alat Penguncian Dunia saat pengguna bergerak tentang lingkungan fisik hanya memerlukan penurunan prefab WorldLockingTools > Prefabs > AnchorGraphVisual ke dalam adegan. Ini biasanya ditambahkan sebagai saudara kandung ke WorldLockingContext, tetapi penempatannya yang tepat dalam hierarki tidak penting. Namun, itu tidak boleh ditempatkan dalam hierarki kamera.

Jangkar spasial yang dibuat dan digunakan WLT secara internal dibuat pada posisi kamera. Karena tidak bersemangat untuk berjalan melalui bidang visualisasi jangkar pada tingkat mata, sistem default untuk menampilkannya 1 meter dari posisi sebenarnya. Untuk melihat visualisasi jangkar pada posisi jangkar aktual, atur parameter Vertikal Displacement komponen Anchor Graph Visual ke nol.

Output tambahan

Contoh Penguncian Dunia menyertakan diagnostik teks. Sebagian besar dari ini hanya relevan untuk pengembang World Locking Tools, daripada klien kemampuannya. Namun, mereka tersedia untuk dibaca dan, seperti yang ditunjukkan dalam skrip StatusToText , untuk tampilan real time.

Tampilan diagnostik umum

Untuk analisis pascamortem, bagian Diagnostik dari WorldLockingContext dapat sangat berguna dalam melaporkan kegagalan Mesin Dunia Beku. Lihat Melaporkan bug untuk informasi lebih lanjut.