Bagikan melalui


Studi kasus - Melihat melalui lubang dalam realitas Anda

Ketika orang berpikir tentang realitas campuran dan apa yang dapat mereka lakukan dengan Microsoft HoloLens, mereka biasanya berpegang pada pertanyaan seperti "Objek apa yang dapat saya tambahkan ke kamar saya?" atau "Apa yang bisa saya lapisan di atas ruang saya?" Saya ingin menyoroti area lain yang dapat Anda pertimbangkan—pada dasarnya trik sulap—menggunakan teknologi yang sama untuk melihat atau melalui objek fisik nyata di sekitar Anda.

Teknologi

Jika Anda telah melawan alien saat mereka menerobos dinding Anda di RoboRaid, membuka brankas dinding di Fragmen, atau cukup beruntung untuk melihat hanggar UNSC Infinity dalam pengalaman Halo 5 di E3 pada tahun 2015, maka Anda telah melihat apa yang saya bicarakan. Tergantung pada imajinasi Anda, trik visual ini dapat digunakan untuk menempatkan lubang sementara di drywall Anda atau untuk menyembunyikan dunia di bawah lantai yang longgar.

RoboRaid menambahkan pipa tiga dimensi dan struktur lain di belakang dinding Anda, hanya terlihat melalui lubang yang dibuat saat penjajah menerobos.

RoboRaid menambahkan pipa tiga dimensi dan struktur lain di belakang dinding Anda, hanya terlihat melalui lubang yang dibuat saat penjajah menerobos.

Menggunakan salah satu hologram unik ini di HoloLens, aplikasi dapat memberikan ilusi konten di belakang dinding Anda atau melalui lantai Anda dengan cara yang sama seperti realitas menyajikan dirinya melalui jendela yang sebenarnya. Pindahkan diri Anda ke kiri, dan Anda dapat melihat apa pun yang ada di sisi kanan. Mendekatlah, dan Anda dapat melihat sedikit lebih banyak dari semuanya. Perbedaan utamanya adalah bahwa lubang nyata memungkinkan Anda melalui, sementara lantai Anda dengan keras kepala tidak akan memungkinkan Anda memanjat konten holografik ajaib itu. (Saya akan menambahkan tugas ke backlog.)

Di belakang layar

Trik ini adalah kombinasi dari dua efek. Pertama, konten holografik disematkan ke dunia menggunakan "jangkar spasial." Menggunakan jangkar untuk membuat konten itu "dikunci dunia" berarti bahwa apa yang Anda lihat tidak secara visual menyimpang jauh dari objek fisik di dekatnya, bahkan saat Anda bergerak atau sistem pemetaan spasial yang mendasar memperbarui model 3D ruangan Anda.

Kedua, konten holografik itu secara visual terbatas pada ruang yang sangat spesifik, sehingga Anda hanya dapat melihat melalui lubang dalam kenyataan Anda. Oklusi itu diperlukan untuk mengharuskan melihat melalui lubang logis, jendela, atau pintu, yang menjual trik. Tanpa sesuatu yang menghalangi sebagian besar pemandangan, retakan ruang ke dimensi Jurassic rahasia mungkin hanya terlihat seperti dinosaurus yang ditempatkan dengan buruk.

Ini bukan cuplikan layar aktual, tetapi ilustrasi tentang bagaimana rahasia underworld dari MR Basics 101 terlihat di HoloLens. Penutup hitam tidak muncul, tetapi Anda dapat melihat konten melalui lubang virtual. (Saat melihat melalui perangkat aktual, lantai tampaknya akan hilang lebih banyak lagi karena mata Anda fokus pada jarak yang lebih jauh seolah-olah tidak ada di sana.)

Ini bukan cuplikan layar aktual, tetapi ilustrasi tentang bagaimana rahasia underworld dari MR Basics 101 terlihat di HoloLens. Penutup hitam tidak muncul, tetapi Anda dapat melihat konten melalui lubang virtual. (Saat melihat melalui perangkat aktual, lantai tampaknya akan hilang lebih banyak lagi karena mata Anda fokus pada jarak yang lebih jauh seolah-olah tidak ada di sana.)

Konten holografik penguncian dunia

Di Unity, menyebabkan konten holografik tetap terkunci di dunia semampu menambahkan komponen WorldAnchor:

myObject.AddComponent<WorldAnchor>();

Komponen WorldAnchor akan terus menyesuaikan posisi dan rotasi GameObject-nya (dan dengan demikian apa pun di bawah objek tersebut dalam hierarki) agar tetap stabil relatif terhadap objek fisik terdekat. Saat menulis konten Anda, buat dengan cara sedih sehingga pivot akar objek Anda berpusat di lubang virtual ini. (Jika pivot objek Anda jauh di dinding, sedikit penyesuaian posisi dan rotasinya akan jauh lebih terlihat, dan lubang mungkin tidak terlihat sangat stabil.)

Menempati segalanya kecuali lubang virtual

Ada berbagai cara untuk secara selektif memblokir pemandangan ke apa yang tersembunyi di dinding Anda. Yang paling sederhana memanfaatkan fakta bahwa HoloLens menggunakan tampilan aditif, yang berarti bahwa objek yang sepenuhnya hitam tampak tidak terlihat. Anda dapat melakukan ini di Unity tanpa melakukan trik shader atau material khusus— cukup buat bahan hitam dan tetapkan ke objek yang kotak dalam konten Anda. Jika Anda tidak ingin melakukan pemodelan 3D, cukup gunakan beberapa objek Quad default dan tumpang tindih sedikit. Ada sejumlah kelemahan untuk pendekatan ini, tetapi ini adalah cara tercepat untuk mendapatkan sesuatu yang berfungsi, dan mendapatkan bukti keakuratan rendah dari konsep yang berfungsi sangat bagus, bahkan jika Anda menduga Anda mungkin ingin merefaktornya nanti.

Salah satu kelemahan utama dari pendekatan "kotak hitam" di atas adalah bahwa itu tidak difoto dengan baik. Meskipun efek Anda mungkin terlihat sempurna melalui tampilan HoloLens, cuplikan layar apa pun yang Anda ambil akan menampilkan objek hitam besar alih-alih sisa dinding atau lantai Anda. Alasan untuk ini adalah bahwa perangkat keras fisik dan cuplikan layar komposit hologram dan realitas secara berbeda. Mari kita memutar sejenak ke dalam beberapa matematika palsu ...

Peringatan matematika palsu! Angka-angka dan rumus ini dimaksudkan untuk mengilustrasikan titik, bukan untuk menjadi metrik yang akurat!

Apa yang Anda lihat melalui HoloLens:

( Reality * darkening_amount ) + Holograms

Apa yang Anda lihat di cuplikan layar dan video:

( Reality * ( 1 - hologram_alpha ) ) + Holograms * hologram_alpha

Dalam bahasa Inggris: Apa yang Anda lihat melalui HoloLens adalah kombinasi sederhana dari realitas gelap (seperti melalui kacamata hitam) dan hologram apa pun yang ingin ditampilkan aplikasi. Tetapi saat Anda mengambil cuplikan layar, gambar kamera dipadukan dengan hologram aplikasi sesuai dengan nilai transparansi per piksel.

Salah satu cara untuk mengatasinya adalah dengan mengubah bahan "kotak hitam" untuk hanya menulis ke buffer kedalaman, dan mengurutkan dengan semua bahan buram lainnya. Untuk contoh ini, lihat file WindowOcclusion.shader di MixedRealityToolkit di GitHub. Baris yang relevan disalin di sini:

"RenderType" = "Opaque"
"Queue" = "Geometry"
ColorMask 0

(Perhatikan baris "Offset 50, 100" adalah untuk menangani masalah yang tidak terkait, jadi mungkin masuk akal untuk membiarkannya keluar.)

Menerapkan materi oklusi yang tidak terlihat seperti itu akan memungkinkan aplikasi Anda menggambar kotak yang terlihat benar di layar dan dalam cuplikan layar realitas campuran. Untuk poin bonus, Anda dapat mencoba meningkatkan performa kotak itu lebih jauh dengan melakukan hal-hal cerdas untuk menggambar lebih sedikit piksel yang tidak terlihat, tetapi itu benar-benar bisa masuk ke gulma dan biasanya tidak akan diperlukan.

Berikut adalah rahasia underworld dari MR Basics 101 karena Unity menggambarnya, kecuali untuk bagian luar kotak penghubung. Perhatikan bahwa pivot untuk underworld berada di tengah kotak, yang membantu menjaga lubang tetap stabil mungkin relatif terhadap lantai Anda yang sebenarnya.

Berikut adalah rahasia underworld dari MR Basics 101 karena Unity menggambarnya, kecuali untuk bagian luar kotak penghubung. Perhatikan bahwa pivot untuk underworld berada di tengah kotak, yang membantu menjaga lubang tetap stabil mungkin relatif terhadap lantai Anda yang sebenarnya.

Lakukan sendiri

Memiliki HoloLens dan ingin mencoba efeknya sendiri? Hal termudah yang dapat Anda lakukan (tidak diperlukan pengodean) adalah menginstal aplikasi Penampil 3D gratis dan kemudian memuat unduhan file.fbx yang telah saya sediakan di GitHub untuk melihat model pot bunga di kamar Anda. Muat di HoloLens, dan Anda dapat melihat ilusi di tempat kerja. Saat Anda berada di depan model, Anda hanya dapat melihat ke dalam lubang kecil —segala sesuatu yang lain tidak terlihat. Lihatlah model dari sisi lain dan menghilang sepenuhnya. Gunakan gerakan, rotasi, dan kontrol skala Penampil 3D untuk memposisikan lubang virtual terhadap permukaan vertikal apa pun yang dapat Anda pikirkan untuk menghasilkan beberapa ide!

Melihat model ini di editor Unity Anda akan menampilkan kotak hitam besar di sekitar pot bunga. Di HoloLens, kotak menghilang, memberikan jalan ke efek jendela ajaib.

Melihat model ini di editor Unity Anda akan menampilkan kotak hitam besar di sekitar pot bunga. Di HoloLens, kotak menghilang, memberikan jalan ke efek jendela ajaib.

Jika Anda ingin membuat aplikasi yang menggunakan teknik ini, lihat tutorial MR Basics 101 dalam tutorial Mixed Reality. Bab 7 diakhiri dengan ledakan di lantai Anda yang mengungkapkan dunia bawah tersembunyi (seperti yang digambarkan di atas). Siapa bilang tutorial harus membosankan?

Berikut adalah beberapa ide di mana Anda dapat mengambil ide ini selanjutnya:

  • Pikirkan cara untuk membuat konten di dalam lubang virtual interaktif. Membiarkan pengguna Anda memiliki beberapa dampak di luar dinding mereka dapat benar-benar meningkatkan rasa heran bahwa trik ini dapat memberikan.
  • Pikirkan cara untuk melihat melalui objek kembali ke area yang diketahui. Misalnya, bagaimana Anda dapat meletakkan lubang holografik di meja kopi Anda dan melihat lantai Anda di bawahnya?

Tentang penulis

Gambar Eric Rehmeyer Eric Rehmeyer
@Microsoft Insinyur Perangkat Lunak Senior

Lihat juga