Bagikan melalui


Sistem koordinat

Pada intinya, aplikasi realitas campuran menempatkan hologram di dunia Anda yang terlihat seperti dan terdengar objek nyata. Ini melibatkan penempatan dan orientasi hologram yang tepat di tempat-tempat yang bermakna di dunia, apakah dunia adalah ruang fisik mereka atau dunia virtual yang telah Anda buat. Windows menyediakan berbagai sistem koordinat dunia nyata untuk mengekspresikan geometri--ini dikenal sebagai sistem koordinat spasial. Anda dapat menggunakan sistem ini untuk alasan tentang posisi hologram, orientasi, sinar tatapan , atau posisi tangan.

Dukungan perangkat

Fitur HoloLens (generasi ke-1) HoloLens 2 Headset imersif
Bingkai referensi stasioner ✔️ ✔️ ✔️
Bingkai referensi terlampir ✔️ ✔️ ✔️
Bingkai referensi tahap Belum didukung Belum didukung ✔️
Jangkar spasial ✔️ ✔️ ✔️
Pemetaan spasial ✔️ ✔️
Pemahaman adegan ✔️

Skala pengalaman realitas campuran

Anda dapat merancang aplikasi Realitas campuran untuk berbagai pengalaman pengguna, dari penonton video 360 derajat menggunakan orientasi headset ke aplikasi dan game skala dunia penuh menggunakan pemetaan spasial dan jangkar spasial:


Skala pengalaman Persyaratan Contoh pengalaman
Orientasi saja Orientasi headset (sejajar dengan gravitasi) Penampil video 360°
Skala duduk Di atas ditambah posisi headset berdasarkan posisi nol Game balap atau simulator ruang angkasa
Skala berdiri Di atas plus asal lantai panggung Permainan aksi di mana Anda menunduk dan menghinap di tempat
Skala kamar Poligon batas panggung di atas plus Permainan teka-teki di mana Anda berjalan di sekitar teka-teki
Skala dunia Jangkar spasial (dan biasanya pemetaan spasial) Permainan dengan musuh yang berasal dari dinding asli Anda, seperti RoboRaid

Pengalaman menskalakan di atas mengikuti model "boneka bersarang". Prinsip desain utama untuk Windows Mixed Reality adalah ini: headset tertentu mendukung aplikasi yang dibangun untuk skala pengalaman target dan semua skala yang lebih rendah.


Pelacakan 6DOF Lantai ditentukan Pelacakan 360° Batas yang ditentukan Spatial anchors Pengalaman maks
Tidak - - - - Orientasi saja
Ya Tidak - - - Duduk
Ya Ya Tidak - - Berdiri - Maju
Ya Ya Ya Tidak - Berdiri - 360°
Ya Ya Ya Ya Tidak Kamar
Ya Ya Ya Ya Ya Dunia

Bingkai referensi Tahap belum didukung di HoloLens. Aplikasi skala ruangan di HoloLens saat ini perlu menggunakan pemetaan spasial atau pemahaman adegan untuk menemukan lantai dan dinding pengguna.

Sistem koordinat spasial

Semua aplikasi grafis 3D menggunakan sistem koordinat Kartesius untuk alasan tentang posisi dan orientasi objek virtual. Sistem koordinat ini menetapkan tiga sumbu tegak lurus: X, Y, dan Z. Setiap objek yang Anda tambahkan ke adegan akan memiliki posisi XYZ dalam sistem koordinatnya. Windows memanggil sistem koordinat yang memiliki arti nyata di dunia fisik sistem koordinat spasial , yang mengekspresikan nilai koordinatnya dalam meter. Ini berarti bahwa objek menempatkan dua unit terpisah pada sumbu X, Y, atau Z akan muncul dua meter terpisah satu sama lain ketika dirender dalam realitas campuran. Mengetahui hal ini, Anda dapat dengan mudah merender objek dan lingkungan dalam skala dunia nyata.

Secara umum, sistem koordinat Kartesius disebut sebagai "tangan kanan" atau "kidal" karena Anda dapat menggunakan posisi tangan untuk menunjukkan arah sumbu XYZ. Dalam kedua sistem koordinat, sumbu X positif menunjuk ke kanan dan sumbu Y positif menunjuk ke atas. Perbedaan antara keduanya adalah bahwa dalam sistem koordinat tangan kanan, sumbu Z menunjuk ke arah Anda, sementara di sistem koordinat sebelah kiri, sumbu Z menunjuk jauh dari Anda.

Gambar tangan kanan seseorang yang menunjukkan sistem koordinat tangan kanan

Gambar tangan kiri seseorang yang menunjukkan sistem koordinat sebelah kiri

Sistem koordinat spasial pada Windows (dan oleh karena itu, Windows Mixed Reality) selalu dengan tangan kanan.

[! CATATAN]

  • Unity dan Unreal menggunakan sistem koordinat sebelah kiri.
  • Meskipun koordinat sebelah kiri dan tangan kanan adalah sistem yang paling umum, ada sistem koordinat lain yang digunakan dalam perangkat lunak 3D. Misalnya, tidak biasa bagi aplikasi pemodelan 3D untuk menggunakan sistem koordinat di mana sumbu Y menunjuk ke arah atau jauh dari penampil dan sumbu Z menunjuk ke atas.

Membangun pengalaman orientasi saja atau skala duduk

Kunci penyajian holografik adalah mengubah tampilan aplikasi Anda dari hologramnya setiap bingkai saat pengguna bergerak, agar sesuai dengan gerakan kepala yang diprediksi. Anda dapat membangun pengalaman skala duduk yang menghormati perubahan pada posisi kepala pengguna dan orientasi kepala menggunakan bingkai referensi stasium.

Beberapa konten harus mengabaikan pembaruan posisi kepala, tetap diperbaiki pada judul dan jarak yang dipilih dari pengguna selalu. Contoh utama adalah video 360 derajat: karena video diambil dari satu perspektif tetap, itu akan merusak ilusi agar posisi tampilan bergerak berdasarkan konten, meskipun orientasi tampilan berubah saat pengguna melihat-lihat. Anda dapat membangun pengalaman orientasi-saja tersebut menggunakan bingkai referensi yang terlampir.

Bingkai referensi stasensi

Sistem koordinat yang disediakan oleh bingkai referensi stasium berfungsi untuk menjaga posisi objek di dekat pengguna sesering mungkin berdasarkan dunia, sambil menghormati perubahan posisi kepala pengguna.

Untuk pengalaman berskala duduk di mesin game seperti Unity, bingkai referensi stasium adalah apa yang mendefinisikan "asal dunia" mesin. Objek yang ditempatkan pada koordinat dunia tertentu menggunakan bingkai referensi stasium untuk menentukan posisinya di dunia nyata menggunakan koordinat yang sama. Konten yang tetap ditempatkan di dunia, bahkan saat pengguna berjalan-jalan, dikenal sebagai konten yang dikunci di dunia .

Aplikasi biasanya akan membuat satu bingkai referensi stasium pada startup dan menggunakan sistem koordinatnya sepanjang masa pakai aplikasi. Sebagai pengembang aplikasi di Unity, Anda hanya dapat mulai menempatkan konten berdasarkan asal, yang akan berada di posisi dan orientasi kepala awal pengguna. Jika pengguna pindah ke tempat baru dan ingin melanjutkan pengalaman skala duduk mereka, Anda dapat memberi tahu anda asal dunia di lokasi tersebut.

Seiring waktu, karena sistem mempelajari lebih lanjut tentang lingkungan pengguna, sistem dapat menentukan bahwa jarak antara berbagai titik di dunia nyata lebih pendek atau lebih panjang dari yang diyakini sistem sebelumnya. Jika Anda merender hologram dalam bingkai referensi stasium untuk aplikasi di HoloLens di mana pengguna berkeliaran di luar luas sekitar 5 meter, aplikasi Anda dapat mengamati penyimpangan di lokasi hologram yang diamati. Jika pengalaman Anda membuat pengguna berkeliaran melebihi 5 meter, Anda sedang membangun pengalaman skala dunia, yang akan memerlukan teknik lain untuk menjaga hologram tetap stabil, seperti yang dijelaskan di bawah ini.

Bingkai referensi terlampir

Bingkai referensi yang dilampirkan bergerak dengan pengguna saat mereka berjalan-jalan, dengan judul tetap yang ditentukan saat aplikasi pertama kali membuat bingkai. Ini memungkinkan pengguna dengan nyaman melihat-lihat konten yang ditempatkan dalam bingkai referensi tersebut. Konten yang dirender dengan cara relatif pengguna ini disebut konten yang dikunci tubuh .

Ketika headset tidak dapat mengetahui lokasinya di dunia, bingkai referensi yang terpasang menyediakan satu-satunya sistem koordinat, yang dapat digunakan untuk merender hologram. Ini membuatnya ideal untuk menampilkan UI fallback untuk memberi tahu pengguna bahwa perangkat mereka tidak dapat menemukannya di dunia. Aplikasi yang berskala duduk atau lebih tinggi harus menyertakan fallback khusus orientasi untuk membantu pengguna kembali, dengan UI yang mirip dengan yang ditunjukkan di rumah Mixed Reality.

Membangun pengalaman skala berdiri atau skala kamar

Untuk melampaui skala duduk pada headset imersif dan membangun pengalaman skala berdiri, Anda dapat menggunakan bingkai referensi tahap.

Untuk memberikan pengalaman skala ruangan, memungkinkan pengguna berjalan di sekitar dalam batas 5 meter yang telah ditentukan sebelumnya, Anda juga dapat memeriksa batas tahap .

Bingkai referensi tahap

Saat pertama kali menyiapkan headset imersif, pengguna mendefinisikan tahap, yang mewakili ruangan tempat mereka akan mengalami realitas campuran. Tahap ini secara minimal mendefinisikan asal panggung, sistem koordinat spasial yang berpusat pada posisi lantai yang dipilih pengguna dan orientasi ke depan tempat mereka berniat menggunakan perangkat. Dengan menempatkan konten dalam sistem koordinat tahap ini di bidang lantai Y=0, Anda dapat memastikan hologram Anda tampak nyaman di lantai saat pengguna berdiri, memberi pengguna pengalaman skala berdiri.

Batas tahap

Pengguna juga dapat secara opsional menentukan batas tahap, area di dalam ruangan yang telah mereka bersihkan untuk bergerak dalam realitas campuran. Jika demikian, aplikasi dapat membangun pengalaman skala ruangan, menggunakan batas ini untuk memastikan bahwa hologram selalu ditempatkan di mana pengguna dapat menjangkaunya.

Karena bingkai referensi tahap menyediakan sistem koordinat tetap tunggal untuk menempatkan konten relatif lantai, ini adalah jalur termampu untuk porting aplikasi skala siaga dan skala ruangan yang dikembangkan untuk headset realitas virtual. Namun, seperti halnya platform VR tersebut, sistem koordinat tunggal hanya dapat menstabilkan konten dalam diameter sekitar 5 meter (16 kaki), sebelum efek lever-arm menyebabkan konten jauh dari pusat untuk bergeser dengan jelas saat sistem menyesuaikan. Untuk melampaui 5 meter, diperlukan jangkar spasial.

Membangun pengalaman berskala dunia

HoloLens memungkinkan pengalaman skala dunia sejati yang memungkinkan pengguna berjalan lebih dari 5 meter. Untuk membangun aplikasi skala dunia, Anda memerlukan teknik baru di luar yang digunakan untuk pengalaman skala ruangan.

Mengapa satu sistem koordinat yang kaku tidak dapat digunakan melebihi 5 meter

Saat ini, saat menulis game, aplikasi visualisasi data, atau aplikasi realitas virtual, pendekatan umumnya adalah membangun satu sistem koordinat dunia absolut yang dapat dipetakan kembali oleh semua koordinat lainnya. Dalam lingkungan itu, Anda selalu dapat menemukan transformasi stabil yang mendefinisikan hubungan antara dua objek di dunia tersebut. Jika Anda tidak memindahkan objek tersebut, transformasi relatifnya akan selalu tetap sama. Sistem koordinat global semacam ini bekerja dengan baik ketika merender dunia virtual murni di mana Anda mengetahui semua geometri terlebih dahulu. Aplikasi VR skala kamar saat ini biasanya membangun sistem koordinat skala ruangan absolut semacam ini dengan asalnya di lantai.

Sebaliknya, perangkat realitas campuran yang tidak terikat seperti HoloLens memiliki pemahaman berbasis sensor dinamis tentang dunia, terus menyesuaikan pengetahuannya dari waktu ke waktu di sekitar pengguna saat mereka berjalan berukuran banyak meter di seluruh lantai gedung. Dalam pengalaman skala dunia, jika Anda menempatkan semua hologram Anda dalam satu sistem koordinat yang kaku, hologram tersebut akan selalu menyimpang dari waktu ke waktu, baik berdasarkan dunia atau satu sama lain.

Misalnya, headset saat ini mungkin percaya dua lokasi di dunia terpisah 4 meter, dan kemudian memperbaiki pemahaman itu, mempelajari bahwa lokasi sebenarnya terpisah 3,9 meter. Jika hologram tersebut awalnya ditempatkan 4 meter terpisah dalam satu sistem koordinat yang kaku, salah satunya kemudian akan selalu muncul 0,1 meter dari dunia nyata.

Spatial anchors

Windows Mixed Reality memecahkan masalah yang dijelaskan di bagian sebelumnya dengan memungkinkan Anda membuat jangkar spasial untuk menandai poin penting di dunia di mana pengguna telah menempatkan hologram. Jangkar spasial mewakili titik penting di dunia yang harus dilacak oleh sistem dari waktu ke waktu.

Ketika perangkat belajar tentang dunia, jangkar spasial ini dapat menyesuaikan posisi mereka berdasarkan satu sama lain sesuai kebutuhan untuk memastikan setiap jangkar tetap persis di mana ia ditempatkan berdasarkan dunia nyata. Dengan menempatkan jangkar spasial di lokasi di mana pengguna menempatkan hologram dan kemudian memposisikan hologram tersebut berdasarkan jangkar spasialnya, Anda dapat memastikan hologram mempertahankan stabilitas optimal, bahkan saat pengguna menjelajah di puluhan meter.

Penyesuaian berkelanjutan jangkar spasial berdasarkan satu sama lain adalah perbedaan utama antara sistem koordinat dari jangkar spasial dan bingkai referensi stasial:

  • Hologram yang ditempatkan dalam bingkai referensi stasium semuanya menjaga hubungan yang kaku satu sama lain. Namun, saat pengguna berjalan jauh, sistem koordinat bingkai tersebut dapat menyimpang berdasarkan dunia untuk memastikan bahwa hologram di samping pengguna tampak stabil.

  • Hologram yang ditempatkan dalam bingkai panggung referensi juga menjaga hubungan yang kaku satu sama lain. Berbeda dengan bingkai stasium, bingkai panggung selalu tetap di tempat berdasarkan asal fisik yang ditentukan. Namun, konten yang dirender dalam sistem koordinat tahap di luar batas 5 meter hanya akan tampak stabil saat pengguna berdiri di dalam batas itu.

  • Hologram yang ditempatkan menggunakan satu jangkar spasial dapat menyimpang berdasarkan hologram yang ditempatkan menggunakan jangkar spasial lainnya. Ini memungkinkan Windows untuk meningkatkan pemahamannya tentang posisi setiap jangkar spasial, bahkan jika, misalnya, satu jangkar perlu menyesuaikan dirinya sendiri ke kiri dan jangkar lain perlu menyesuaikan dengan benar.

Berbeda dengan bingkai referensi stasium, yang selalu mengoptimalkan stabilitas di dekat pengguna, bingkai referensi tahap dan jangkar spasial memastikan stabilitas di dekat asalnya. Ini membantu hologram tersebut tetap tepat di tempat dari waktu ke waktu, tetapi juga berarti bahwa hologram yang dirender terlalu jauh dari asal sistem koordinat mereka akan mengalami efek tangan tuas yang semakin parah. Ini karena penyesuaian kecil pada posisi dan orientasi panggung atau jangkar diperbesar sebanding dengan jarak dari jangkar tersebut.

Aturan praktis yang baik adalah memastikan bahwa apa pun yang Anda render berdasarkan sistem koordinat jangkar spasial yang jauh berada dalam sekitar 3 meter dari asalnya. Untuk asal tahap terdekat, merender konten jauh tidak apa-apa, karena kesalahan posisi yang ditingkatkan hanya akan memengaruhi hologram kecil yang tidak akan banyak bergeser dalam tampilan pengguna.

Persistensi jangkar spasial

Jangkar spasial juga dapat memungkinkan aplikasi Anda mengingat lokasi penting bahkan setelah aplikasi ditangguhkan atau perangkat dimatikan.

Anda dapat menyimpan ke disk jangkar spasial yang dibuat aplikasi Anda, lalu memuatnya kembali nanti, dengan menyimpannya ke penyimpanan jangkar spasial aplikasi Anda. Saat menyimpan atau memuat jangkar, Anda menyediakan kunci string yang bermakna bagi aplikasi Anda, untuk mengidentifikasi jangkar nanti. Anggap kunci ini sebagai nama file untuk jangkar Anda. Jika Anda ingin mengaitkan data lain dengan jangkar tersebut, seperti model 3D yang ditempatkan pengguna di lokasi tersebut, simpan data tersebut ke penyimpanan lokal aplikasi Anda dan kaitkan dengan kunci yang Anda pilih.

Dengan mempertahankan jangkar ke toko, pengguna Anda dapat menempatkan hologram individual atau menempatkan ruang kerja di mana aplikasi akan menempatkan berbagai hologramnya, lalu menemukan hologram tersebut nanti di tempat yang mereka harapkan, atas banyak kegunaan aplikasi Anda.

Anda juga dapat menggunakan Azure Spatial Anchors untuk persistensi hologram asinkron di seluruh perangkat HoloLens, iOS, dan Android. Dengan berbagi jangkar spasial cloud yang tahan lama, beberapa perangkat dapat mengamati hologram persisten yang sama dari waktu ke waktu, bahkan jika perangkat tersebut tidak hadir bersama-sama pada saat yang sama.

Berbagi jangkar spasial

Aplikasi Anda juga dapat berbagi jangkar spasial secara real time dengan perangkat lain, memungkinkan pengalaman bersama secara real time.

Dengan menggunakan Azure Spatial Anchors, aplikasi Anda dapat berbagi jangkar spasial di beberapa perangkat HoloLens, iOS, dan Android. Dengan membuat setiap perangkat merender hologram menggunakan jangkar spasial yang sama, semua pengguna akan melihat hologram muncul di tempat yang sama di dunia nyata.

Hindari konten yang dikunci kepala

Kami sangat mencegah penyajian konten yang dikunci kepala, yang tetap berada di tempat tetap di layar (seperti HUD). Secara umum, konten yang dikunci kepala tidak nyaman bagi pengguna dan tidak terasa seperti bagian alami dunia mereka.

Konten yang dikunci kepala biasanya harus diganti dengan hologram yang melekat pada pengguna atau ditempatkan di dunia itu sendiri. Misalnya, kursor umumnya harus didorong ke dunia, penskalaan secara alami untuk mencerminkan posisi dan jarak objek di bawah tatapan pengguna.

Menangani kesalahan pelacakan

Di beberapa lingkungan seperti lorong gelap, mungkin tidak mungkin bagi headset menggunakan pelacakan inside-out untuk menemukan dirinya dengan benar di dunia. Ini dapat menyebabkan hologram tidak muncul atau muncul di tempat yang salah jika ditangani dengan tidak benar. Kami sekarang membahas kondisi di mana hal ini dapat terjadi, dampaknya pada pengalaman pengguna, dan tips untuk menangani situasi ini dengan sebisa mungkin.

Headset tidak dapat melacak karena data sensor yang tidak memadai

Terkadang, sensor headset tidak dapat mencari tahu di mana headset berada. Hal ini dapat terjadi jika:

  • Ruangan itu gelap
  • Jika sensor ditutupi oleh rambut atau tangan
  • Jika lingkungan tidak memiliki tekstur yang cukup.

Ketika ini terjadi, headset tidak akan dapat melacak posisinya dengan akurasi yang cukup untuk merender hologram yang terkunci di dunia. Anda tidak dapat mencari tahu di mana jangkar spasial, bingkai stasioner, atau bingkai panggung didasarkan pada perangkat. Namun, Anda masih dapat merender konten yang dikunci tubuh dalam bingkai referensi yang terlampir.

Aplikasi Anda harus memberi tahu pengguna cara mendapatkan pelacakan posisional kembali, merender beberapa konten yang dikunci tubuh fallback yang menjelaskan beberapa tips, seperti mengungkap sensor dan menyalakan lebih banyak lampu.

Headset salah melacak karena perubahan dinamis di lingkungan

Perangkat tidak dapat melacak dengan benar jika ada banyak perubahan dinamis di lingkungan, seperti banyak orang berjalan-jalan di dalam ruangan. Dalam hal ini, hologram mungkin tampak melompat atau melayang saat perangkat mencoba melacak dirinya sendiri di lingkungan dinamis ini. Sebaiknya gunakan perangkat di lingkungan yang kurang dinamis jika Anda mencapai skenario ini.

Headset salah melacak karena lingkungan telah berubah secara signifikan dari waktu ke waktu

Ketika Anda mulai menggunakan headset di lingkungan tempat furnitur, dinding menggantung, dan sebagainya, telah dipindahkan, ada kemungkinan bahwa beberapa hologram mungkin muncul bergeser dari lokasi aslinya. Hologram sebelumnya juga dapat melompat-lompat saat pengguna bergerak di ruang baru karena pemahaman sistem tentang ruang Anda tidak lagi benar. Sistem kemudian mencoba memetakan ulang lingkungan sambil juga mencoba mendamaikan fitur ruangan. Dalam skenario ini, disarankan untuk mendorong pengguna untuk mengganti hologram yang mereka sematkan di dunia jika mereka tidak muncul di tempat yang diharapkan.

Trek headset salah karena ruang yang identik di lingkungan

Terkadang, rumah atau ruang lain mungkin memiliki dua area yang identik. Misalnya, dua ruang konferensi yang identik, dua area sudut yang identik, dua poster identik besar yang mencakup bidang pandang perangkat. Dalam skenario seperti itu, perangkat mungkin, kadang-kadang, bingung antara bagian yang identik dan menandainya sebagai sama dalam representasi internalnya. Hal ini dapat menyebabkan hologram dari beberapa area muncul di lokasi lain. Perangkat mungkin mulai sering kehilangan pelacakan karena representasi internal lingkungannya telah rusak. Dalam hal ini, disarankan untuk mengatur ulang pemahaman lingkungan sistem. Mengatur ulang peta menyebabkan hilangnya semua penempatan jangkar spasial. Hal ini akan menyebabkan headset melacak dengan baik di area lingkungan yang unik. Namun, masalahnya mungkin terulang kembali jika perangkat bingung di antara area yang identik lagi.

Lihat juga