Kedalaman menambahkan realisme

Panduan khusus platform

Sebagai developer aplikasi AR, Anda ingin secara lancar memadukan antara virtual dan sungguhan untuk pengguna Anda. Ketika pengguna menempatkan objek virtual dalam suasananya, mereka ingin objek tersebut terlihat seperti di dunia nyata. Jika Anda membuat aplikasi untuk pengguna berbelanja furnitur, Anda ingin mereka yakin bahwa kursi yang akan mereka beli akan sesuai dengan ruangan mereka.

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

Kasus penggunaan untuk pengembangan dengan Depth API

Depth API dapat mendukung oklusi objek, peningkatan imersif, 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 scene di ARCore Depth Lab, yang menunjukkan berbagai cara untuk mengakses data kedalaman. Aplikasi Unity ini bersifat open source di GitHub.

Aktifkan oklusi

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

Mentransformasi adegan

Pamerkan pengguna Anda ke dunia baru yang imersif dengan membuat kepingan salju virtual untuk bersandar di lengan dan bantal sofa mereka, atau memasukkan ruang tamu mereka ke dalam kabut berkabut. Anda dapat menggunakan Depth untuk membuat adegan tempat cahaya virtual berinteraksi, bersembunyi di belakang, dan menerangi kembali objek nyata.

Jarak dan kedalaman bidang

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

Memungkinkan interaksi pengguna dengan objek AR

Izinkan pengguna untuk “menyentuh” dunia melalui aplikasi Anda dengan memungkinkan konten virtual berinteraksi dengan dunia nyata melalui tabrakan dan fisika. Buat objek virtual melewati rintangan di dunia nyata, atau buat paintball virtual memukul dan memerciki pohon dunia nyata. Saat menggabungkan tabrakan berbasis kedalaman dengan game fisika, kamu dapat membuat pengalaman yang nyata.

Meningkatkan hit-test

Kedalaman dapat digunakan untuk meningkatkan hasil hit-test. Hit-test bidang hanya berfungsi pada permukaan planar yang bertekstur, sedangkan uji kedalaman kedalaman lebih mendetail dan berfungsi bahkan pada area yang tidak datar dan bertekstur rendah. Hal ini karena depth hit-test menggunakan informasi kedalaman dari adegan untuk menentukan kedalaman dan orientasi titik yang benar.

Pada contoh berikut, Andy hijau mewakili hit-test bidang standar dan Andy merah mewakili hit-test kedalaman.

Kompatibilitas perangkat

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

Beberapa perangkat juga dapat menyediakan sensor kedalaman hardware, seperti sensor waktu terbang (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 depth

Depth API menggunakan algoritme depth-from-motion untuk membuat gambar kedalaman, yang memberikan tampilan 3D dunia. Setiap piksel dalam gambar depth dikaitkan dengan pengukuran seberapa jauh pemandangan dari kamera. Algoritma ini mengambil beberapa gambar perangkat dari berbagai sudut dan membandingkannya untuk memperkirakan jarak ke setiap piksel saat pengguna menggerakkan ponsel. Mode ini menggunakan machine learning secara selektif untuk meningkatkan depth processing, 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 akan meningkatkan depth gambar yang ada dan memungkinkan depth, bahkan saat kamera tidak bergerak. Fitur ini juga memberikan kedalaman yang lebih baik pada permukaan yang memiliki sedikit fitur atau tanpa fitur, seperti dinding putih, atau dalam pemandangan yang dinamis dengan orang atau objek yang bergerak.

Gambar berikut menunjukkan gambar kamera sebuah 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 depth tersedia saat pengguna memindahkan perangkat. Algoritme ini bisa mendapatkan perkiraan kedalaman yang kuat dan akurat dari jarak 0 hingga 65 meter. Hasil yang paling akurat akan muncul 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 ruang pandang yang sama dengan kamera. Data kedalaman yang valid hanya tersedia setelah pengguna mulai menggerakkan perangkat mereka, 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.