Diposting oleh Nikolai Khabarov, Ahli Data Tertanam, Evangelist Teknologi Rumah Pintar, Penemu.Artikel ini adalah penyimpangan singkat ke dasar-dasar bekerja dengan virtual dan augmented reality. Saya tidak mengatur tugas untuk sepenuhnya mengungkapkan semua fitur Google VR SDK dan berencana untuk memberikan basis minimal kepada mereka yang tertarik dengan teknologi ini dan ingin mulai bekerja dengan mereka.
Dari sejarah 3D
Untuk melihat gambar tiga dimensi, hal pertama yang perlu kita lakukan adalah mengatur transfer dua gambar berbeda untuk mata kiri dan kanan. Jelas bahwa ketika kita melihat benda apa pun dalam kehidupan sehari-hari, mata kita melihatnya dari sudut yang berbeda, karena mereka agak jauh satu sama lain. Sebenarnya, karena ini, kami merasakan ruang tiga dimensi di sekitarnya.
Gagasan tentang gambar 3D sudah sangat tua, ada banyak teknologi yang memungkinkan Anda memainkan gambar tiga dimensi. Misalnya, semua orang melihat kacamata anaglyph dengan lensa warna berbeda di bioskop. Gambar ditampilkan di layar dari dua sudut dan spektrum warna dibagi menjadi dua bagian. Dalam hal ini, setiap sudut dilewatkan melalui salah satu filter, yang dengannya ilusi volume muncul. Kerugian utama dari metode ini adalah hilangnya reproduksi warna yang nyata.
Pada tahap pengembangan teknologi selanjutnya, muncul apa yang disebut kacamata rana, yang juga disebut kacamata katup cahaya - kacamata ini juga digunakan di bioskop. Perangkat kacamata tersebut berbeda: setiap lensa memiliki layar kecil dengan resolusi satu piksel, dapat sepenuhnya menutup gambar atau melompati seluruhnya. Kacamata berganti-ganti layar secara bergantian, memungkinkan kita untuk melihat gambar dengan satu atau lainnya Pada saat yang sama, untuk melihat gambar tiga dimensi, kita perlu menyinkronkan pergantian kacamata dengan TV atau layar film. Ini dapat dilakukan melalui saluran radio, atau, seperti yang paling sering terjadi, dengan bantuan penerima inframerah dan pemancar yang dipasang pada kacamata, yang terletak di dekat layar. Kelemahan lain dari metode ini adalah hilangnya kecerahan - untuk separuh waktu kita tidak melihat apa pun dengan satu mata. Selain itu, peralatan pemutaran membutuhkan frame rate yang tinggi.
Perkembangan ide yang menarik adalah teknologi polarisasi - dengan bantuan filter kita hanya dapat memotong bagian yang diperlukan dari gelombang yang terpolarisasi ke arah yang berbeda. Tentunya semua orang terbiasa dengan filter polarisasi untuk kamera yang bisa menghilangkan silau. Dalam kasus gambar 3D, layar disiapkan dengan cara khusus, beberapa garis yang mulai memancarkan cahaya terpolarisasi vertikal, yang lain - cahaya terpolarisasi horizontal. Di bioskop, polarisasi sirkular juga digunakan ketika cahaya diputar ke kanan atau ke kiri.
Kesederhanaan adalah kunci kesuksesan
Para penemu Google Cardboard menjadikan semuanya sederhana dan cerdik, memutuskan untuk menggunakan smartphone biasa untuk mentransfer gambar tiga dimensi. Sebelum ini, ada banyak pilihan untuk kacamata yang dilengkapi dengan berbagai layar, tetapi resolusi matriks layar tersebut sangat sederhana. Apalagi kacamata seperti itu sangat mahal. Dan Google Cardboard yang diusulkan adalah sepotong kardus biasa dengan dua lensa, di mana ia tetap menyimpan ponsel Anda. Ini cukup untuk melihat gambar tiga dimensi dengan mata Anda sendiri.
Perkembangan lebih lanjut dari Karton adalah munculnya
Lamunan - perangkat tidak berbeda dari pendahulunya dengan prinsip operasi, tetapi, dibandingkan dengan itu, memiliki keunggulan signifikan. Secara khusus, bahan dari mana Daydream sendiri dibuat tidak lagi hanya kardus, tetapi kualitasnya jauh lebih tinggi. Kelebihan lainnya yang tak terbantahkan adalah dukungan perangkat lunak Daydream itu sendiri.
Layar ponsel apa pun memiliki serangkaian fitur, seperti lensa Karton. Karton klasik ditandai dalam bentuk kode QR, dan sebelum memasukkannya ke dalam ponsel, Anda harus membaca kode ini untuk memasukkan parameter lensa ke dalam telepon. Dengan menggabungkan parameter, perangkat dapat menghitung cara menampilkan gambar sehingga mencapai Anda dengan distorsi minimal.
Saat menggunakan Daydream, cukup dengan menempatkan perangkat saja sehingga ia membaca parameter kacamata itu sendiri menggunakan NFC. Label itu sendiri tersembunyi di sampul belakang.
Karton juga memiliki panel kontrol kecil; banyak pabrikan telah merilis analog Cardboard dan remote mereka, yang paling beragam: inersia, gravitasi, hanya joystick. Daydream memiliki dua tombol dan touchpad kecil yang memungkinkan Anda untuk memindahkan objek di ruang angkasa atau memindahkan diri Anda dengan menggerakkan jari Anda. Karton hanya memiliki satu tombol, pada kasingnya sendiri, yang hanya merekam pers dan mengirimkan informasi ini ke layar ponsel.
Karton dapat digunakan dengan telepon apa pun yang secara fisik sesuai di dalam kotak itu sendiri dan sangat murah. Untuk bekerja dengan Daydream pada saat penulisan, hanya tiga ponsel yang telah disertifikasi: ZTE Axon 7, Google Pixel dan Motorola Moto Z, mereka berencana untuk menambahkan model baru kepada mereka, tetapi untuk menggunakan Daydream, diperlukan sistem operasi setidaknya Android 7.0.
Interaksi dengan realitas virtual
Bagian yang paling menarik dimulai ketika kita tidak hanya melihat gambar tiga dimensi (3D juga bisa dilihat di TV), tetapi kita mulai menoleh.
Setiap telepon modern dilengkapi dengan sensor mikroelektromekanis. Ini adalah perangkat mikroskopis di mana elektronik dan bagian mekanis bergerak kecil dikumpulkan pada kristal, yang memungkinkan untuk melacak berbagai faktor eksternal. Mungkin semua orang tahu apa itu giroskop - alat yang dengannya Anda bisa mengetahui sudut rotasi. Dalam kasus sensor MEMS, gyro tidak memberikan sudut rotasi itu sendiri, tetapi kecepatan sudut. Di dalamnya ada elemen kecil yang bergerak di bawah pengaruh kekuatan Coriolis (saya harap Anda ingat apa itu, dari jalur fisika). Ini memungkinkan Anda untuk mengetahui kecepatan sudut, dan sudah mengintegrasikannya, kita dapat menentukan sudut rotasi. Benar, metode ini buruk karena mengubah ponsel ke arah yang berbeda, kemungkinan besar kita tidak akan dapat kembali ke titik yang sama dengan tempat kita semula.
Sensor menarik kedua adalah accelerometer. Ini menentukan kekuatan yang bekerja pada telepon, khususnya, percepatan gravitasi. Dalam keadaan tenang, itu akan menunjukkan percepatan gravitasi di planet kita, yang setara dengan sekitar 9,8 m / s². Tapi, jika kita mulai menggerakkan atau memutar ponsel, kita akan memberikan akselerasi. Akibatnya, pada saat-saat ini, sensor tidak akan memberikan bacaan yang diperlukan. Hanya ketika kita berhenti bergerak maka sistem akan tenang dan kita dapat mengenali gaya yang diarahkan ke bumi. Seperti yang Anda lihat, untuk sekadar menentukan posisi telepon di ruang, tidak ada dua sensor yang kami sebutkan yang cocok.
Namun, mengingat bahwa giroskop "kabur" dengan waktu, dan akselerometer "lari" hanya pada saat rotasi, dimungkinkan untuk menghitung posisi perangkat menggunakan berbagai metode matematika, misalnya, filter Kalman. Jika Anda memprogram untuk Android, Anda mungkin memperhatikan bahwa di Android SDK itu sendiri di antara daftar sensor tidak hanya accelerometer dan gyroscope, tetapi juga yang disebut TYPE_ORIENTATION. Ini hanyalah salah satu dari metode matematika yang menghitung posisi telepon menggunakan informasi dari kedua sensor. Mereka sendiri, sebagai suatu peraturan, dirangkai pada satu microcircuit, sangat sering sebuah sensor medan magnet, yaitu kompas, juga ditempatkan di atasnya.
Mereka yang tertarik pada quadrocopters, mungkin memperhatikan bahwa tulisan "barometer" muncul pada model-model baru. Jelas, perangkat ini tidak dimaksudkan untuk analisis cuaca. Sensor semacam itu digunakan untuk mengukur tekanan atmosfer untuk menentukan ketinggian. Ini juga berfungsi di telepon, dan kita dapat menghitung pergerakannya di sepanjang sumbu vertikal ke sentimeter terdekat. Secara alami, bacaan perlu dihaluskan menggunakan filter.
Berlatih
Google telah merilis Google VR SDK untuk perangkat Cardboard dan Daydream-nya. Yang terakhir adalah seperangkat komponen yang membantu kami mengembangkan aplikasi khusus untuk menampilkan realitas 3D, tersedia di iOS dan Android. SDK ini membuatnya mudah untuk membangun aplikasi untuk virtual dan augmented reality.
Google VR SDK menangani semua pekerjaan dengan sensor, berkat itu, kita tidak perlu menghitung angka empat untuk memahami cara memutar adegan di OpenGL ketika memutar kepala kita. Sederhananya Lihat pada aktivitas, dan SDK akan melakukan semuanya sendiri.
Mari kita lihat bagaimana kita dapat memulai dengan cepat dengan Google VR SDK dan cara membuat aplikasi Android sederhana. Pertama, Anda perlu Android Studio yang sudah diinstal sebelumnya.
Unduh SDK dari
repositori resmi
git . Dokumentasi SDK tersedia di
sini .
Sekarang cukup buka direktori root repositori menggunakan Android Studio. Di sana Anda dapat menemukan contoh yang dapat dikompilasi dari sumber dan dijalankan di perangkat Android Anda. Proyek segera memiliki konfigurasi untuk menjalankan contoh.

Daydream juga memiliki pengontrol kecilnya sendiri, yang juga didukung oleh SDK. Ini memiliki satu set fungsi panggilan balik, dan Anda dapat dengan aman menggunakan pengontrol ini dalam desain Anda. Ada contoh khusus dalam SDK 'sdk-controllerclient'.
Untuk persepsi yang paling realistis, saya ingin merasakan suaranya, sehingga jelas dari mana asalnya, di mana ia diarahkan, dan di lingkungan mana ia didistribusikan. Ada GvrAudioEngine di perpustakaan untuk ini, yang menyerupai Open Audio Library atau Direct3D Sound yang disederhanakan. Cukup berkomunikasi dengan koordinat sumber suara di luar angkasa, dan perpustakaan itu sendiri akan mencampur suara yang Anda butuhkan. Anda dapat menentukan berbagai bahan lingkungan, misalnya, Anda dapat membuat adegan di mana berbagai musik diputar dari kolom di kanan dan kiri, dan Anda dapat menentukan lebih banyak sumber suara.
Contoh 'sdk-treasurehunt' adalah permainan yang cukup sederhana diimplementasikan pada OpenGL murni. Ini juga menggunakan GvrAudioEngine untuk memberikan efek suara surround game.
Ada Google VR SDK dan sekumpulan tampilan yang luar biasa, meskipun kecil, yang dapat Anda embed dalam aplikasi Anda. Secara khusus, VrPanoramaView adalah komponen untuk menampilkan foto panorama pada 360 derajat, dan tampilan stereografis. Anda cukup meletakkan foto di sumber daya aplikasi dan memanggil VrPanoramaView.loadImageFromBitmap () hanya dalam satu baris untuk mengambil gambar khusus ini dan menampilkannya. Hasilnya, Anda mendapatkan komponen siap pakai yang dapat dilihat pengguna di aplikasi mereka - ini adalah Tampilan normal, sama seperti semua orang di Android.
Anda dapat menampilkan beberapa komponen tersebut sekaligus di satu layar, Anda dapat menampilkan satu di layar penuh, dan pada saat yang sama, untuk beralih di antara kacamata dan tampilan sederhana, Anda hanya perlu mengklik tombol yang akan ditarik oleh perpustakaan. Dimungkinkan juga untuk menambahkan video menggunakan komponen VrVideoView. Dan jika Anda bosan menonton di beberapa titik, Anda dapat memundurkan videonya.
Dua sampel dari SDK 'sdk-simplepanowidget' dan 'sdk-simplevideowidget' menunjukkan betapa sangat sederhana untuk membuat aplikasi dengan objek bawaan tersebut.
Muncul pertanyaan, dari mana mendapatkan video dan gambar seperti itu? Tetapi beberapa perusahaan sudah mulai memproduksi kamera dalam bentuk pernak-pernik kecil dengan lensa di kedua sisi. Dengan bantuan mereka, Anda dapat mengambil foto panorama pada 360 derajat - mereka bahkan dapat secara mandiri menghubungkannya sendiri - tetapi video tidak akan berfungsi. Untuk melakukan ini, Anda memerlukan desain yang agak mahal, dan perangkat lunak khusus yang dapat merekatkan gambar yang dihasilkan dan mengubahnya menjadi konten yang cocok untuk ditampilkan dalam realitas virtual.

Solusi
Odyssey mencakup 16 kamera yang disinkronkan.
Aplikasi
Di mana teknologi yang dijelaskan dapat diterapkan? Opsi pertama jelas merupakan game. Sebagai aturan, OpenGL adalah penembak dan gim lain yang membutuhkan rasa mendalam. Netflix baru-baru ini meluncurkan layanan untuk menampilkan konten 3D, perpustakaan ini juga dapat membantu Anda menulis beberapa jenis solusi tampilan film khusus.
Anda dapat memungkinkan pelanggan di toko menggunakan ponsel untuk melihat deskripsi tambahan mereka di sebelah label harga.
Anda dapat menerapkannya dalam penjualan real estat. Bertemu pembeli dan penjual biasanya tidak nyaman. Dan dengan bantuan video seperti itu, akan lebih mudah bagi pembeli untuk menilai sebelumnya apakah ia harus pergi menonton objek ini atau itu.
Museum adalah tempat ideal lain untuk menerapkan teknologi. Di museum modern, di dalam aula sering kali ada komputer tempat Anda dapat mengakses informasi tambahan, mendengarkan sesuatu. Tetapi komputer-komputer ini secara teratur sibuk, dan telepon selalu ada untuk semua orang, dan ia mampu menambahkan elemen augmented reality ke dalam paparan. Perpustakaan akan bekerja dengan hampir semua model perangkat, dan jika diinginkan, kami dapat menyampaikan lebih banyak informasi kepada pengunjung museum.
Berikut ini adalah iklan Google pendek yang menunjukkan seperti apa Google Earth dalam kacamata realitas virtual. Anda dapat menonton video seperti itu di monitor biasa, tetapi gambar yang sama dalam kacamata akan terlihat banyak. Gerakan di ruang angkasa dilakukan menggunakan remote control Daydream, juga untuk beberapa ponsel dimungkinkan untuk menggunakan barometer dan bergerak hanya dengan memutar kepala.
Gagasan lain yang sangat menarik untuk menggunakan teknologi tersebut adalah pencetakan 3D.
Satu startup menyarankan pengguna menggunakan augmented reality untuk membangun model bersama dengan alat pemodelan lainnya. Menggunakan pengontrol konvensional, Anda tidak bisa mendapatkan model dengan akurasi tinggi - kesalahannya akan sangat besar. Tetapi kita dapat membuat suvenir kecil dengan bantuan pengontrol seperti itu dan memesannya langsung dari aplikasi untuk mencetaknya pada printer 3D. Gagasan ini bagus dan akan segera dimonetisasi, terutama karena printer untuk produk tersebut secara bertahap semakin murah.