Kedalaman menambahkan realisme

Panduan khusus platform

Sebagai developer aplikasi AR, Anda ingin menggabungkan virtual dengan dunia nyata secara lancar untuk pengguna. Saat pengguna menempatkan objek virtual di tampilan, mereka ingin objek tersebut terlihat seperti berada di dunia nyata. Jika Anda membuat aplikasi bagi pengguna untuk berbelanja furnitur, Anda ingin mereka yakin bahwa kursi berlengan yang akan mereka beli akan sesuai dengan ruangan mereka.

Depth API membantu kamera perangkat memahami ukuran dan bentuk objek nyata dalam suatu scene. Fitur ini membuat gambar kedalaman, atau peta kedalaman, sehingga menambahkan lapisan realisme ke dalam aplikasi Anda. Anda dapat menggunakan informasi yang diberikan oleh gambar kedalaman untuk memungkinkan pengalaman pengguna yang imersif dan realistis.

Kasus penggunaan untuk pengembangan dengan Depth API

Depth API dapat mendukung oklusi objek, meningkatkan imersi, dan interaksi baru yang meningkatkan realisme pengalaman AR. Berikut adalah beberapa cara untuk menggunakannya dalam project Anda sendiri. Untuk contoh cara kerja Depth, jelajahi contoh tampilan di ARCore Depth Lab, yang menunjukkan berbagai cara untuk mengakses data kedalaman. Aplikasi Unity ini bersifat open source di GitHub.

Mengaktifkan oklusi

Oklusi, atau merender objek virtual secara akurat di belakang objek dunia nyata, sangat penting untuk pengalaman AR yang imersif. Bayangkan Andy virtual yang mungkin ingin ditempatkan pengguna dalam adegan yang berisi bagasi di samping pintu. Jika dirender tanpa oklusi, Andy akan tumpang-tindih secara tidak realistis dengan tepi bagasi. Jika menggunakan kedalaman tampilan dan memahami seberapa jauh Andy virtual relatif terhadap lingkungan seperti batang kayu, Anda dapat merender Andy dengan penutupan secara akurat, sehingga Andy terlihat jauh lebih realistis di lingkungannya.

Mengubah suasana

Tampilkan pengguna Anda ke dunia baru yang imersif dengan merender kepingan salju virtual untuk menempel di lengan dan bantal sofa mereka, atau menampilkan ruang tamu mereka dalam kabut berkabut. Anda dapat menggunakan Kedalaman untuk membuat tampilan tempat lampu virtual berinteraksi, bersembunyi di belakang, dan menyalakan kembali objek nyata.

Jarak dan kedalaman bidang

Perlu menunjukkan bahwa sesuatu berada jauh? Anda dapat menggunakan pengukuran jarak dan menambahkan efek kedalaman bidang, seperti memburamkan latar belakang atau latar depan tampilan, dengan Depth API.

Memungkinkan interaksi pengguna dengan objek AR

Izinkan pengguna “menyentuh” dunia melalui aplikasi Anda dengan memungkinkan konten virtual berinteraksi dengan dunia nyata melalui benturan dan fisika. Buat objek virtual melewati rintangan dunia nyata, atau buat paintball virtual mengenai dan memercik ke pohon dunia nyata. Jika menggabungkan tabrakan berbasis kedalaman dengan fisika game, Anda dapat menghidupkan pengalaman.

Meningkatkan hit-test

Kedalaman dapat digunakan untuk meningkatkan hasil hit-test. Hit-test bidang hanya berfungsi pada permukaan bidang dengan tekstur, sedangkan hit-test kedalaman lebih mendetail dan berfungsi bahkan di area non-bidang dan tekstur rendah. Hal ini karena hit-test kedalaman menggunakan informasi kedalaman dari tampilan untuk menentukan kedalaman dan orientasi titik yang benar.

Dalam contoh berikut, Andy yang berwarna hijau mewakili hit-test bidang standar dan Andys merah mewakili depth hit-test.

Kompatibilitas perangkat

Depth API hanya didukung di perangkat dengan daya pemrosesan untuk mendukung kedalaman, dan harus diaktifkan secara manual di ARCore, seperti yang dijelaskan dalam Mengaktifkan Depth.

Beberapa perangkat mungkin juga menyediakan sensor kedalaman hardware, seperti sensor time-of-flight (ToF). Lihat halaman Perangkat yang didukung ARCore untuk mengetahui daftar terbaru perangkat yang mendukung Depth API dan daftar perangkat yang memiliki sensor kedalaman hardware yang didukung, seperti sensor ToF.

Gambar kedalaman

Depth API menggunakan algoritma kedalaman dari gerakan untuk membuat gambar kedalaman, yang memberikan tampilan 3D dunia. Setiap piksel dalam gambar kedalaman dikaitkan dengan pengukuran jarak adegan dari kamera. Algoritma ini mengambil beberapa gambar perangkat dari berbagai sudut dan membandingkannya untuk memperkirakan jarak ke setiap piksel saat pengguna menggerakkan ponselnya. Fitur ini secara selektif menggunakan machine learning untuk meningkatkan pemrosesan kedalaman, bahkan dengan gerakan minimal dari pengguna. Fitur ini juga memanfaatkan hardware tambahan yang mungkin dimiliki perangkat pengguna. Jika perangkat memiliki sensor kedalaman khusus, seperti ToF, algoritme akan otomatis menggabungkan data dari semua sumber yang tersedia. Hal ini meningkatkan kualitas gambar kedalaman yang ada dan memungkinkan kedalaman meskipun kamera tidak bergerak. Mode ini juga memberikan kedalaman yang lebih baik pada permukaan dengan sedikit atau tanpa fitur, seperti dinding putih, atau dalam scene dinamis dengan orang atau objek yang bergerak.

Gambar berikut menunjukkan gambar kamera dari lorong dengan sepeda di dinding, dan visualisasi gambar kedalaman yang dibuat dari gambar kamera. Area berwarna merah lebih dekat ke kamera, dan area berwarna biru lebih jauh.

Kedalaman dari gerakan

Data kedalaman akan tersedia saat pengguna memindahkan perangkatnya. Algoritme ini bisa mendapatkan perkiraan kedalaman yang kuat dan akurat dari jarak 0 hingga 65 meter. Hasil yang paling akurat diperoleh saat perangkat berjarak setengah meter hingga sekitar lima meter dari pemandangan dunia nyata. Pengalaman yang mendorong pengguna untuk lebih sering menggerakkan perangkat akan mendapatkan hasil yang lebih baik.

Mendapatkan gambar kedalaman

Dengan Depth API, Anda dapat mengambil gambar kedalaman yang cocok dengan setiap bingkai kamera. Gambar kedalaman yang diperoleh memiliki stempel waktu dan intrinsik bidang pandang yang sama dengan kamera. Data kedalaman yang valid hanya tersedia setelah pengguna mulai menggerakkan perangkat, karena kedalaman diperoleh dari gerakan. Permukaan dengan sedikit atau tanpa fitur, seperti dinding putih, akan dikaitkan dengan kedalaman yang tidak akurat.

Langkah selanjutnya

  • Lihat ARCore Depth Lab, yang menunjukkan berbagai cara untuk mengakses data kedalaman.